XPath获取父元素

时间:2011-04-08 15:45:00

标签: 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>

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

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

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

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

2 个答案:

答案 0 :(得分:6)

  

问题是:我如何得到所有   具有Field的导航条目   ParentNavigationEntry带有值   456。

//NavigationEntry[
   /Relation
      /RelationEntry
         /ParentNavigationEntry = 456
]

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

答案 1 :(得分:0)

将/NanNavigationEntry添加到XPath ..

示例...

//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]//ParentNavigationEntry