XPath获取父元素

Ste*_*lze 2 xml xpath

我有一个与XPath相关的问题.我有一个XML条目列表,如下所示:

<NavigationEntry>
<BaseData>
    <Name>Entry Name</Name>
  </BaseData>
  <Relation>
    <RelationEntry isDefault="0">
      <ParentNavigationEntry>456</ParentNavigationEntry>
      <Order>200</Order>
    </RelationEntry>
  </Relation>

<NavigationEntry>
  <BaseData>
    <Name>Entry Name</Name>
  </BaseData>
  <Relation>
    <RelationEntry isDefault="0">
      <ParentNavigationEntry>123</ParentNavigationEntry>
      <Order>200</Order>
    </RelationEntry>
  </Relation>
Run Code Online (Sandbox Code Playgroud)

问题是:如何获得具有值为356的Field ParentNavigationEntry的所有导航条目.

我试过了 //NavigationEntry//RelationEntry[ParentNavigationEntry="456"]

但这只给了我RelationEntry字段,但我需要NavigationEntry字段.

是否可以使用单个XPath查询解决此问题?

小智 6

问题是:如何获得具有值为356的Field ParentNavigationEntry的所有导航条目.

//NavigationEntry[
   /Relation
      /RelationEntry
         /ParentNavigationEntry = 456
]
Run Code Online (Sandbox Code Playgroud)

注意:选择这些NavigationEntry元素,然后过滤谓词.此外,当模式众所周知时,使用//它并不好,因为它甚至在匹配后遍历整个后代树.