2009-08-27 12 views
2

Mon XML:XPath: Comment sélectionner le premier parent donné d'un nœud?

<root> 
    <child> 
    <childOfChild> 
     <anotherLostChild> 
      <currentSelectedNode> 
       SOME TEXT 
      </currentSelectedNode> 
     </anotherLostChild> 
    </childOfChild> 
    </child> 
</root> 

J'ai choisi le noeud currentSelectedNode utilisant:

xpath.SelectSingleNode("//currentSelectedNode") 

Mais Comment puis-je revenir pour sélectionner le premier nœud parent chilfOfChild (considérant que le contexte est currentSelectedNode?

xpath.SelectSingleNode("//currentSelectedNode")...??? 

Répondre

13

Votre question est vraiment écrit de prêter à confusion, mais il semble que vous voudriez le ancestor axis, quelque chose comme:

//currentSelectedNode/ancestor::childOfChild[1] 

(solution XPath pur)

3
xpath.SelectSingleNode("//currentSelectedNode/../..") 

cela sélectionnera

0
la mère du parent

Dans Linq-To-XML, il suffit d'utiliser la méthode Ancêtre:

Pour obtenir l'ancêtre immédiat ou:

xElement.Ancestor(); 

Pour spécifier les ancêtres:

xElement.Ancestor("NameOfTheAncestorNode"); 
+0

Procédé ancêtre() n'existe pas. – WillB3

Questions connexes