Je xml comme ceci:Obtenez la profondeur d'un élément
<A><B>test</B><B><B>test2</B></B><B><B><B>test2</B></B></B></A>
Comment puis-je obtenir le niveau de chacun de ces éléments à l'aide LINQ to XML
niveau de test = 1 niveau de test2 = 2 niveau de test3 = 3
Je ne sais pas combien de nœuds il y aura ou combien de niveaux il y aura. Je peux écrire ceci comme une fonction récursive mais je pensais que linq à xml pourrait avoir quelque chose de mieux à offrir.
Il n'y a pas de méthode Count() renvoyée par AncestorsAndSelf. De plus, la sémantique du code ci-dessus retournera une profondeur d'arbre 1 plus grande que la profondeur 0 réelle. Considérez l'extrait de code ci-dessous, qui corrige ces problèmes. –
public static int GetDepth (cet élément XElement) { int Nombre = 0; foreach (Elément XEl dans element.Ancestors()) Count ++; return Count; } –
Il existe une méthode Count(), il s'agit d'une méthode d'extension LINQ. Si vous ne voulez pas compter l'élément en cours, utilisez Ancestors() au lieu de AncestorsAndSelf(). – Monsignor