有几种情况
案例A:
<Root>
<Defaults Id="a"></Defaults>
</Root>
情况B:
<Root>
<Repeat>
<Defaults Id="b"></Defaults>
</Repeat>
</Root>
情况C(嵌套的“重复”数可能是无限的):
<Root>
<Repeat>
<Repeat>
<Repeat>
<Defaults Id="c"></Defaults>
</Repeat>
</Repeat>
</Repeat>
</Root>
情况D:
<Root>
<Repeat>
<Page Id="p1">
<Defaults Id="d"></Defaults>
</Page>
</Repeat>
</Root>
我需要XPath查询,该查询返回属于Root元素或仅位于Repeat节点内部的Defaults节点。如果至少一个父级不是“重复”节点或“根”,则不应将它们包括在结果中。因此,查询结果应返回测试用例A,B,C中的节点。
谢谢!
答案 0 :(得分:1)
此XPath,
//Defaults[parent::Root or parent::Repeat]
将选择父项为Default
或Root
的所有Repeat
元素,
<Defaults Id="a"></Defaults>
<Defaults Id="b"></Defaults>
<Defaults Id="c"></Defaults>
根据要求。