XML в LINQ с Digg API - PullRequest
       49

XML в LINQ с Digg API

2 голосов
/ 19 октября 2011

Продолжая мой предыдущий вопрос (/4845934/neizvestnaya-oshibka-pri-ispolzovanii-digg-api-i-obrabotchika-uri-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")

Но это не похоже на работу.

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

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

1 Ответ

1 голос
/ 21 октября 2011

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

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.

...