gpt4 book ai didi

c# - 如何在不使用youtube API的情况下解析youtube xml

转载 作者:行者123 更新时间:2023-12-03 05:46:18 26 4
gpt4 key购买 nike

我想让我的Facebook应用程序中的用户发布YouTube视频。
任何用户都可以在输入文本框中输入YouTube链接。行为与在其Facebook墙上发布视频相同。
该应用程序从链接中提取视频ID,并创建另一个YouTube链接。
例如,如果链接为:http://www.youtube.com/watch?v=JBWd_yJPbr8&feature=related id为:JBWd_yJPbr8并且请求变为http://gdata.youtube.com/feeds/api/videos/JBWd_yJPbr8

问题是解析返回的XML。这不是标准XML,或者至少我还没有使用标准XML解析器来工作。我如何解析此XML?我需要缩略图,标题和说明...

using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{




while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}

}
}

这种情况是抛出异常:
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);

元素类型无效

最佳答案

使用Json.Net,您可以将返回的json响应解析为:

(我在您的网址后附加了?alt=json)

System.Net.WebClient wc = new System.Net.WebClient();
string s = wc.DownloadString("http://gdata.youtube.com/feeds/api/videos/JBWd_yJPbr8?alt=json");

JObject JObj = (JObject)JsonConvert.DeserializeObject(s);

var entry = JObj["entry"];
Console.WriteLine("TITLE: " + entry["title"]["$t"]);
Console.WriteLine("DESC : " + entry["media$group"]["media$description"]["$t"]);
foreach (var thumbnail in entry["media$group"]["media$thumbnail"])
{
Console.WriteLine(thumbnail["url"]);
}

关于c# - 如何在不使用youtube API的情况下解析youtube xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com