【发布时间】:2011-12-15 20:39:31
【问题描述】:
我想让我的 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);
元素类型无效
【问题讨论】:
-
使用 (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))...
标签: c# asp.net facebook asp.net-mvc-3 youtube