簡體   English   中英

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

[英]XPath: How to select the first given parent of a node?

我的XML:

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

我使用以下方法選擇了節點currentSelectedNode

xpath.SelectSingleNode("//currentSelectedNode")

但是,如何返回選擇第一個chilfOfChild父節點(考慮到上下文是currentSelectedNode

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

你的問題真的很混亂,但聽起來你想要祖先的軸 ,比如:

//currentSelectedNode/ancestor::childOfChild[1]

(純xpath解決方案)

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

這將選擇父母的父母

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

要獲得直接的祖先:

xElement.Ancestor();

要指定哪個祖先:

xElement.Ancestor("NameOfTheAncestorNode");

使用XElement xElem ,您可以使用xElem.Parent來獲取直接父級。

https://msdn.microsoft.com/en-us/library/system.xml.linq.xobject.parent(v=vs.110).aspx

要選擇特定的祖先節點,您可以使用

xElem.Ancestors("currentSelectedNode"); 

獲取具有該特定節點名稱的所有祖先。

https://msdn.microsoft.com/en-us/library/bb348268(v=vs.110).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM