2009-08-27 110 views
2

我的XML:XPath:如何選擇節點的第一個給定的父節點?

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

我選擇使用節點currentSelectedNode

xpath.SelectSingleNode("//currentSelectedNode") 

但我怎麼能恢復到選擇第一chilfOfChild父節點(考慮到上下文currentSelectedNode

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

回答

13

你的問題確實是容易混淆寫,但它聽起來像你想要的ancestor axis,是這樣的:

//currentSelectedNode/ancestor::childOfChild[1] 

(純XPath的解決方案)

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

這將選擇父親的父親

0

在Linq-To-XML中,您只需要使用祖先方法:

要獲得立即的祖先或:

xElement.Ancestor(); 

要指定祖先:

xElement.Ancestor("NameOfTheAncestorNode"); 
+0

Ancestor()方法不存在。 – WillB3 2016-03-18 18:20:59

相關問題