XPath选择除嵌套外的子体
我想选择所有包含“条件”元素的“目标”元素。到目前为止很简单://target[genderant::condition]“ 问题是:我的“target”元素是嵌套的,我不想选择其中一个或多个“condition”元素正好位于另一个“target”元素中的那些“target”元素 看,我的XML看起来像这样XPath选择除嵌套外的子体,xpath,nested,Xpath,Nested,我想选择所有包含“条件”元素的“目标”元素。到目前为止很简单://target[genderant::condition]“ 问题是:我的“target”元素是嵌套的,我不想选择其中一个或多个“condition”元素正好位于另一个“target”元素中的那些“target”元素 看,我的XML看起来像这样 <ROOT> <target id="1"> <condition/> </target> <target i
<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]
仅选择每个条件的第一个祖先 我想到了这一点,但我假设这可以不止一次地选择一些“目标”元素,因为在某些情况下,那里有多个“条件”元素。但不知怎的,它起作用了!非常感谢。我认为不可能多次选择一个元素。这就是它起作用的原因。不客气。