用c#从youtube API解析XML

本文关键字:解析 XML API youtube | 更新日期: 2023-09-27 18:16:09

我已经解析了youtube API返回的一些XML。我要解析的XML可以在如下URL中找到http://gdata.youtube.com/feeds/api/videos?v=2&q=stackoverflow

我试图获得的节点是yt:accessControl,我不确定如何做到这一点。我已经尝试与SelectNodes,但得到一个空的结果。

用c#从youtube API解析XML

对于youtube,我认为你不需要这个——google有专门针对。net的API包装器:https://developers.google.com/youtube/2.0/developers_guide_dotnet

但是,如果您仍然希望手动执行,LINQ to XML方法(如Descendants和Element)将XName作为参数。从字符串到XName的转换是自动发生的。您可以通过在Descendants和Element调用中的字符串之前添加XNamespace来解决这个问题。注意,因为您有两个不同的命名空间在工作。

XNamespace ns = "http://gdata.youtube.com/schemas/2007";
var xElements = XElement.Parse(File.ReadAllText(@"c:'test'youtube.xml"))
                        .Descendants(ns + "accessControl");

如果没有Linq,它看起来像这样:

var xdoc = new XmlDocument();
xdoc.Load(@"c:'test'youtube.xml");
var namespaceManager = new XmlNamespaceManager(xdoc.NameTable);
namespaceManager.AddNamespace("yt", "http://gdata.youtube.com/schemas/2007");
var xmlNodeList = xdoc.SelectNodes("//yt:accessControl", namespaceManager);