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
XPath选择除嵌套外的子体_Xpath_Nested - Fatal编程技术网

XPath选择除嵌套外的子体

XPath选择除嵌套外的子体,xpath,nested,Xpath,Nested,我想选择所有包含“条件”元素的“目标”元素。到目前为止很简单://target[genderant::condition]“ 问题是:我的“target”元素是嵌套的,我不想选择其中一个或多个“condition”元素正好位于另一个“target”元素中的那些“target”元素 看,我的XML看起来像这样 <ROOT> <target id="1"> <condition/> </target> <target i

我想选择所有包含“条件”元素的“目标”元素。到目前为止很简单://target[genderant::condition]“

问题是:我的“target”元素是嵌套的,我不想选择其中一个或多个“condition”元素正好位于另一个“target”元素中的那些“target”元素

看,我的XML看起来像这样

<ROOT>

<target id="1">
 <condition/>
</target>

<target id="2">
 <any_tag/>
</target>

<target id="3">
 <condition/>
 <target id="4">
   <condition>
 </target>
</target>

<target id="5">
 <target id="6">
  <condition/>
 </target>
</target>

</ROOT>

我想选择ID为1、3、4和6但不是5的“目标”元素,因为在这个
标记和“条件”标记之间有另一个“目标”标记


(在我的实际代码中,“condition”元素不是“target”元素的直接子元素。为了简化,我更改了它。)

在这种情况下,您可以使用
祖先

//condition/ancestor::target[1]

您应该使用
[1]
仅选择每个
条件的第一个祖先

我想到了这一点,但我假设这可以不止一次地选择一些“目标”元素,因为在某些情况下,那里有多个“条件”元素。但不知怎的,它起作用了!非常感谢。我认为不可能多次选择一个元素。这就是它起作用的原因。不客气。