J'utilise C# et LINQ pour parcourir mon document XDocument.LINQ sur XML: trouver le parent de premier niveau
Disons que je XML comme ceci:
<Root>
<Element ID="1">
<Element ID="2">
<Element ID="3" />
...
</Element>
<Element ID="50">
...
</Element>
</Element>
<Element ID="x">
...
</Element>
</Root>
Maintenant, nous allons dire que j'ai l'ID 3, et parviennent à trouver l'élément avec cet ID. À ce stade, je souhaite trouver l'ID du nœud parent de niveau supérieur (son parent est un niveau inférieur à la racine). Dans ce cas, je veux trouver l'élément avec ID 1. Je peux le faire:
myElement.Parent.Parent
Mais je ne sais pas combien de niveaux jusqu'à ce pourrait être - donc je dois probablement récursion. Cependant, je rappelle que XDocument est en lecture seule. Combien cela coûte-t-il de trouver le parent - récursivement? Quelle est la meilleure façon de procéder?
Mes fichiers XML peuvent être jusqu'à 500 000 pixels.
J'ai un livre LINQ ici et il est dit que XNode utilise en interne une liste de liens simples, donc l'appel de PreviousNode est non-performant. Je craignais que Parent soit également non performant. –
Droit - non, je ne crois pas que ce soit le cas. Essayez-le sur le plus gros document que vous êtes susceptible de voir, et chronométrez-le :) –