我有这个 xml 文档:
<AAA>
<CCC>
<BBB>SALAM</BBB>
<BBB>HALET KHUBE</BBB>
<BBB>HEY</BBB>
<TTT>SALAM</TTT>
<GGG/>
<ZZZ/>
</CCC>
<DDD>
<BBB>GOOD</BBB>
<BBB>BOOO</BBB>
<GGG/>
<GGG/>
<ZZZ/>
</DDD>
<EEE>
<CCC>TAKE</CCC>
<DDD>LEAVE</DDD>
<ZZZ/>
<ZZZ/>
<ZZZ/>
</EEE>
</AAA>
我想选择有 2 个子节点,文本 =“SALAM”(该节点可以有任意数量的子节点,但它必须有 2 个子节点,文本 =“SALAM”)。例如,在上面的 xml 中,xpath 查询必须返回 CCC 标签。 请帮我。 谢谢
最佳答案
使用:
/*/*[count(*[text() = 'SALAM']) = 2 ]
使用以下内容可能会更有效:
/*/*
[*[text() = 'SALAM'][2]
and
not([*[text() = 'SALAM'][3])
]
尽可能避免使用 //
伪运算符,因为在许多情况下它可能会非常慢。
关于xml - 计算xpath中子项的特殊文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771670/