使用Digg API将XML转换为LINQ

时间:2011-10-19 16:09:29

标签: xml linq api digg

继续上一个问题(http://stackoverflow.com/questions/7817619/unknown-error-using-digg-api-and-uri-handler-silverlight,我要感谢你的回答)我现在有一个跟进不那么错误的问题。

要从this中提取数据,我们获得了以下XML到LINQ代码。

    var stories = from story in document.Descendants("story")
                  //where story.Element("thumbnail") != null
                  select new DiggStory
                  {
                      Id = (string)story.Attribute("story_id"),
                      Title = (string)story.Element("title"),
                      Description = (string)story.Element("description"),
                      ThumbNail = (string)story.Element("thumbnail").Attribute("src"),
                      //HrefLink = (string)story.Attribute("permalink"),
                      NumDiggs = (int)story.Attribute("diggs")
                  };

这可以按预期工作,但看到Digg API已过时,我宁愿成为新的api,它会创建the following XML file

现在我想知道如何调整XML到LINQ代码以利用这个新的XML文件? 我知道问题在于

   var stories = from story in document.Descendants("story")

但我不知道我需要将其更改为什么,因为new XML file有更多级别。

中我正在考虑一些事情
var stories = from item in document.Descendants("stories")

但这似乎不起作用。

我想再次感谢你帮我解决这个问题以及任何进一步的问题,这真是一个很棒的网站!

谢谢你,Thomas

1 个答案:

答案 0 :(得分:1)

从这开始:

var stories = from item in document.RootElement.Element("stories").Descendants("item")
              select new DiggStory
              {
                  Id = item.Element("story_id").Value
                  // ...etc
              }

您可以了解有关使用LINQ to XML解析XML文档的更多信息。特别有用的可能是XElement documentation,它显示了为XML文档中的每个“元素”(标记)定义的所有方法和属性。

相关问题