继续上一个问题(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
答案 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文档中的每个“元素”(标记)定义的所有方法和属性。