【发布时间】:2015-03-12 14:56:15
【问题描述】:
我有一批 xml,其中每个标签都有一个属性 isOptional。这种xml的一个例子是
<node1 isOptional="False">
<node2 isOptional="True">
<node22 isOptional="False">
<node3 isOptional="False">text4</node3>
</node22>
</node2>
<node4 isOptional="False">
<node5 isOptional="False">
<node6 isOptional="True">text3</node6>
<node7 isOptional="False">
<node8 isOptional="True">text2</node8>
<node9 isOptional="False">text1</node9>
</node7>
</node5>
</node4>
</node1>
我需要编写 xpath 来选择所有没有@isOptional="True" 的主节点的叶节点。对于这个例子,结果应该是:
<node9 isOptional="False">text1</node9>
其实我需要这样的东西:
//*[not(*) and @isOptional="False" and count(ancestor::*[@isOptional = "True"] = 0)]
您能帮我获取正确的 xpath 吗?
【问题讨论】: