【发布时间】:2009-08-03 22:15:29
【问题描述】:
我正在尝试解析来自 YouTube API 的结果。我以字符串的形式正确获取结果,但无法正确解析它。
我遵循了上一个帖子的建议,但没有得到任何结果。
我的示例代码是:
string response = youtubeService.GetSearchResults(search.Term, "published", 1, 50);
XDocument xDoc = XDocument.Parse(response, LoadOptions.SetLineInfo);
var list = xDoc.Descendants("entry").ToList();
var entries = from entry in xDoc.Descendants("entry")
select new
{
Id = entry.Element("id").Value,
Categories = entry.Elements("category").Select(c => c.Value)
//Published = entry.Element("published").Value,
//Title = entry.Element("title").Value,
//AuthorName = entry.Element("author").Element("name").Value,
//Thumnail = entry.Element("media:group").Elements("media:thumnail").ToList().ElementAt(0)
};
foreach (var entry in entries)
{
// entry.Id and entry.Categories available here
}
问题是条目的计数为 0,即使 XDocument 显然具有有效值。
响应变量(Sample XML)的值可以在这里看到:http://snipt.org/lWm
(仅供参考:youtube 架构在此处列出:http://code.google.com/apis/youtube/2.0/developers_guide_protocol_understanding_video_feeds.html)
谁能告诉我我在这里做错了什么?
【问题讨论】:
-
您的第一个问题是未能发布失败 XML 的示例。我不知道你的第二个问题是什么,因为你的第一个问题。
-
也许您的第二个问题是您没有在 foreach 循环中设置断点?您尝试过,还是依赖调试器?
-
我会冒险猜测答案是“xml 命名空间”。你有示例 xml 吗?
-
我用响应字符串的值更新了帖子(见这里:snipt.org/lWm)我确实设置了断点,并逐步完成了它。它完全跳过循环,条目数为 0。
-
示例 XML 在这里:snipt.org/lWm
标签: c# xml linq-to-xml