LINQ to XML을 사용하여 XML 파일의 정보를 개체로 추출하려고합니다. 문서 및 섹션 ID 특성을 반환 할 수는 있지만 각 섹션 요소의 항목에 액세스 할 수는 없지만 문서의 모든 항목에 대해 IEnumerable을 반환합니다. 나는 이것이 Descendants를 호출 할 때 정확하다는 것을 알고 있지만 각 섹션 요소의 자식 항목 만 반환하도록 고심하고 있습니다. 아무도 도와 줄 수 있니?LINQ to XML 하위 요소 선택
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 쿼리
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"));
}
}
}
나는 약간의 목적이 명확하지 않다. 익명 객체는 문서 ID, 문서의 모든 섹션 및 문서의 모든 섹션에있는 모든 항목으로 구성됩니다. XML 계층 구조를 익명 객체로 재구성하려는 경우 여러 쿼리가 필요할 것입니다. 왜 그런 경우 XML을 사용하지 않는 것이 좋을까요? – womp