LINQ to XML, как получить потомок корня и потомка потомков? - PullRequest
0 голосов
/ 30 марта 2019

У меня есть определенная XML-схема:

<PeopleContainer>
  <People>
    <Person Name="John Doe" Age="27" CauseOfAwesome="King of All Cosmos" />
    <Person Name="Ally McBeagle" Age="7" CauseOfAwesome="Adorable" />
    <Person Name="Bender Rodriguez" Age"249" CauseOfAwesome="Bending" />  
  </People>
</PeopleContainer

То, что я хочу сделать, это захватить тег People как IEnumerable, чтобы я мог передать его в свое приложение, но я еще не видел опцию для этого случая.

Я пробовал что-то вроде этого:

XDocument xdoc = XDocument.Load(path);
var people = from p in xdoc.Descendants("People")
             select new
             {
               Name = p.Attribute("Name").Value,
               Age = p.Attribute("Age").Value,
               CauseOfAwesome = p.Attribute("CauseOfAwesome")
             };
foreach (var p in people)
{
   Console.WriteLine(p);
}

Я думаю, что я могу создавать people неправильно ...

1 Ответ

0 голосов
/ 30 марта 2019

вы забыли установить Элемент Person:

        var people = from p in xdoc.Root.Descendants("People")
            select new
            {
                Name = p.Element("Person").Attribute("Name").Value,
                Age = p.Element("Person").Attribute("Age").Value,
                CauseOfAwesome = p.Element("Person").Attribute("CauseOfAwesome")
            };

        foreach (var n in people)
        {
            Console.WriteLine(n.Name);
            Console.WriteLine(n.Age);
            Console.WriteLine(n.CauseOfAwesome);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...