Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath获取父元素_Xml_Xpath - Fatal编程技术网

Xml XPath获取父元素

Xml XPath获取父元素,xml,xpath,Xml,Xpath,我有一个与XPath相关的问题。我有一个XML条目列表,如下所示: <NavigationEntry> <BaseData> <Name>Entry Name</Name> </BaseData> <Relation> <RelationEntry isDefault="0"> <ParentNavigationEntry>456</ParentNavigat

我有一个与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
200
条目名称
123
200
问题是:如何获取字段ParentNavigationEntry值为456的所有导航条目

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

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


是否可以通过单个XPath查询解决此问题?

将/ParentNavigationEntry添加到XPath中

例如

//NavigationEntry//RelationEntry[ParentNavigationEntry="456"]//ParentNavigationEntry
问题是:我怎样才能得到所有 具有字段的导航条目 具有值的ParentNavigationEntry 456


注意:选择那些
NavigationEntry
元素,然后筛选谓词。另外,当模式众所周知时,使用
/
不是一个好的做法,因为即使在匹配之后,它也会遍历整个子代树。

正是我所需要的!非常感谢你没有使用456左右的报价。什么时候可以?我有类似结构的xpath,但只有在引用时才起作用。
//NavigationEntry[
   /Relation
      /RelationEntry
         /ParentNavigationEntry = 456
]