Я использую C # и LINQ для обхода моего XDocument.
Допустим, у меня есть XML как это:
<Root>
<Element ID="1">
<Element ID="2">
<Element ID="3" />
...
</Element>
<Element ID="50">
...
</Element>
</Element>
<Element ID="x">
...
</Element>
</Root>
Теперь, допустим, у меня есть идентификатор 3, и мне удалось найти элемент с этим идентификатором. На этом этапе я хочу найти идентификатор родительского узла верхнего уровня (это родитель, который находится на один уровень ниже корневого). В этом случае я хочу найти элемент с идентификатором 1. Я могу сделать это:
myElement.Parent.Parent
Но я не знаю, как много уровней может быть, поэтому мне, вероятно, нужна рекурсия. Однако я вспоминаю, что XDocument читается только для пересылки. Насколько дорого найти Родителя - рекурсивно? Каков наилучший способ сделать это?
Размер моих XML-файлов может достигать 500 КБ.