XML в LINQ с Digg API

Продолжая мой предыдущий вопрос (http://stackoverflow.com/questions/7817619/unknown-error-using-digg-api-and-uri-handler-silverlight, на который я хочу поблагодарить вас за ответ), теперь у меня есть до менее ошибочный вопрос.

Чтобы извлечь данные из этого, мы получили следующий 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, который создает следующий файл XML.

Теперь мне было интересно, как мне настроить код XML для LINQ, чтобы использовать этот новый XML-файл? Я знаю, что проблема в

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

Но я не знаю, на что мне нужно его изменить, потому что новый файл XML имеет больше уровней. Я думал что-то в этом роде

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

Но это не работает.

Я хочу еще раз поблагодарить вас за помощь мне с этой проблемой и любыми другими проблемами, это действительно отличный сайт!

Спасибо, Томас


person Schoof    schedule 19.10.2011    source источник


Ответы (1)


Начните с этого:

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

Подробнее об анализе документов XML можно узнать с помощью LINQ to XML. Возможно, вам будет особенно полезна документация по XElement, который показывает все методы и свойства, определенные для каждого "элемента" (тега) в XML-документе.

person Matt Bridges    schedule 21.10.2011