yt:在youtube供稿中找不到统计信息

时间:2013-09-10 20:53:46

标签: c# xml wpf youtube youtube-api

我一直在尝试使用此link从youtube检索某些视频,但事情进展顺利,直到我添加上传日期过滤器时,XML文件不包含{{在yt:statistics标记中添加1}}。除此之外,当我添加其他过滤器(如Order by)时,似乎没有任何问题。

我在WebClient中使用的Uri就是这个:

entry

我能为我做出的错误是什么意思?

谢谢。

编辑:

在放置一些断点之后,https://gdata.youtube.com/feeds/api/videos?q=example&time=today&max-results=20&v=2 确实包含了它,但问题在于我使用的代码:

XML

似乎 XElement downloadedXml = XElement.Parse(xml); //extract entries from the xml var entries = downloadedXml.Descendants().Where(c => c.Name.LocalName == "entry"); foreach (var entry in entries) { string views = ""; //extract the number of views views = entry.Descendants().Where(c => c.Name.LocalName == "statistics").First().Attribute("viewCount").Value; } 不包含entry

知道问题在哪里?

1 个答案:

答案 0 :(得分:2)

奇怪。它似乎对我有用:))

var xDoc = XDocument.Load("https://gdata.youtube.com/feeds/api/videos?q=example&time=today&max-results=20&v=2");

XNamespace ns = "http://www.w3.org/2005/Atom";
XNamespace yt = "http://gdata.youtube.com/schemas/2007";
var result = xDoc.Descendants(ns + "entry")
                    .Where(e => e.Element(yt + "statistics")!=null)
                    .Select(e => e.Element(yt + "statistics")
                                .Attributes()
                                .ToDictionary(a => a.Name, a => a.Value))

                 .ToList();