Я ищу запрос linq to Xdoc для группировки по подмножеству узлов XML. Я только смог заставить это работать, чтобы возвратить подмножество данных, но мне нужно, чтобы весь документ xml был передан обратно только с определенными сгруппированными узлами.
<Root>
<Elementname1>
</Elementname1>
<Elementname2>
</Elementname2>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
</Root>
Этот код:
var result =
from row in xDoc.Descendants("Elementname3")
group row by (string)row.Attribute("attrname") into g
select g.First();
возвращается:
<Elementname3 attrname="test1">
<Child></Child>
</Elementname3>
Ожидать:
<Root>
<Elementname1>
</Elementname1>
<Elementname2>
</Elementname2>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
</Root>
Я так понимаю, поскольку элемент-потомок начинается с elementname3; просто не уверен, как изложить запрос linq, чтобы начать с корневого узла и группы, как ожидалось.