2009-05-15 11 views
0

un nœud au-dessus du noeud courant dans un exemple d'arbre hiérarchique parent, grand-parent, grand-parent ou le nœud de pourriture sont tous les ancêtres de l'anode dans un xmlComment obtenir le grand-parent et grand grand-parent du noeud xml

Comment puis-je obtenir le grand parent et l'arrière-grand-parent d'un nœud XML actuel? J'utilise VB.Net dans une application ASP.NET.

remerciement wow réponses sont belles

que je peux avoir quelque chose comme XmlNode greatGrandParent = myNode.ParentNode.ParentNode.ParentNode.lastchild.lastchild

+1

Il serait utile si spécifié lequel des trois modèles de document offerts par .NET vous utilisez? – AnthonyWJones

Répondre

3

Utilisation du System.XML XmlNode possède une propriété ParentNode vous pouvez donc utilisez-le pour traverser l'arbre.

En utilisant le System.Xml.XPath XPathNavigator a une méthode MoveToParent.

En utilisant System.Xml.Linq la classe XNode a une méthode qui Ancêtres peut être un peu plus propre: -

GrandParent = Node.Ancestors.Skip(1).Single() 
GreatGrandParent = Node.Ancestors.Skip(2).Single() 
3

Dans (le faible) la lumière des informations très limitées fournies, je ne voudrais suggérer que vous utilisez la propriété ParentNode de l'objet contexte XmlNode.

par ex. Obtenir le grand-parent:

XmlNode grandParent = myNode.ParentNode.ParentNode; 

par ex. Obtenir le grand-parent:

XmlNode greatGrandParent = myNode.ParentNode.ParentNode.ParentNode; 

Notez que cela est sujette aux exceptions. Par exemple, si le nœud actuel n'a pas de ParentNode (ou est de type - Attribut, Document, DocumentFragment, Entité, Notation), alors le code lèvera une exception car ces nœuds ne peuvent pas avoir de Parents.

Veuillez modifier votre question pour fournir plus d'informations afin que les réponses puissent être «meilleures».

+0

mec vous êtes soo droite, point sur place – Spikie

+0

puis-je avoir quelque chose comme lastchild.lastchild des trucs comme ça – Spikie

+1

@Spikie: Votre clé de point d'interrogation semble coller. Peut-être qu'il est temps pour un nouveau clavier. – Tomalak

Questions connexes