Я пытаюсь извлечь информацию из файла XML в объект, используя LINQ to XML. Хотя я могу вернуть атрибуты идентификатора документа и раздела, но не могу получить доступ к элементам для каждого элемента раздела, он возвращает IEnumerable всех элементов в документе. Я знаю, что это правильно, так как я вызываю Descendants, но изо всех сил пытаюсь заставить его возвращать только дочерние элементы каждого элемента section. Кто-нибудь может помочь?
XML-документ
<root>
<document id="1">
<section id="1.1">
<item id="1.1.1"></item>
<item id="1.1.2"></item>
<item id="1.1.3"></item>
</section>
<section id="1.2">
<item id="1.2.1"></item>
<item id="1.2.2"></item>
</section>
</document>
</root>
LINQ Query
XElement documentRoot = XElement.Load("document.xml");
var documents = (from docs in documentRoot.Descendants("document")
select new
{
Id = (string) docs.Attribute("id"),
Sections = docs.Elements("section"),
Items = docs.Elements("section").Elements("item")
}).ToList();
foreach(var doc in documents)
{
foreach(var section in doc.Sections)
{
Console.WriteLine("SectionId: " + section.Attribute("Id"));
foreach(var item in doc.Items)
{
Console.WriteLine("ItemId: " + section.Attribute("Id"));
}
}
}