Как перебрать набор элементов XElements? - PullRequest
2 голосов
/ 26 октября 2010

http://www.dreamincode.net/forums/xml.php?showuser=335389

Учитывая приведенный выше XML-код, как я могу выполнить итерацию по каждому элементу внутри элемента 'lastvisitors', учитывая, что каждая дочерняя группа одинакова только с разными значениями?*

Итак, теперь я захватил XElement, содержащий все, что мне нужно.Есть ли способ перебрать элементы, чтобы получить то, что мне нужно?

У меня есть этот объект POCO под названием Visitor, единственной целью которого является хранение необходимой информации.помощь.

Ответы [ 2 ]

5 голосов
/ 26 октября 2010

Вы, вероятно, можете просто сделать что-то подобное в Linq:

XDocument xml = XDocument.Parse(xmlString);
var visitors = (from visitor in xml.Descendants("latestvisitors").Descendants("user")
                select new Visitor() {
                  ID = visitor.Element("id").Value,
                  Name = visitor.Element("name").Value,
                  Url = visitor.Element("url").Value,
                  Photo = visitor.Element("photo").Value,
                  Visited = visitor.Element("visited").Value
                });

Единственное предостережение в том, что я не выполнял никакой проверки нуля.

2 голосов
/ 26 октября 2010

Просто выполните запрос linq, чтобы выбрать все элементы в качестве объекта.

var visitors = (from v in xml.Element("ipb").Element("profile")
                             .Element("latestvisitors").Elements()
               select new Visitor {
                   ID = (string)v.Element("id"),
                   Name = (string)v.Element("name"),

               }).ToList();
...