Xml 计算xpath中子级的特殊文本
我有这个xml文档:Xml 计算xpath中子级的特殊文本,xml,xpath,xpath-2.0,Xml,Xpath,Xpath 2.0,我有这个xml文档: <AAA> <CCC> <BBB>SALAM</BBB> <BBB>HALET KHUBE</BBB> <BBB>HEY</BBB> <TTT>SALAM</TTT> <GGG/> &l
<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>
萨拉姆
哈勒特库伯
嘿
萨拉姆
好
博奥
拿
离开
我想选择有两个子节点且text=“SALAM”(该节点可以有任意数量的子节点,但必须有两个子节点且text=“SALAM”)。例如,在上述xml中,xpath查询必须返回CCC标记。
请帮帮我。
谢谢使用count()
xpath函数:
//*[count(./*[text()="SALAM"])=2]
使用:
/*/*[count(*[text() = 'SALAM']) = 2 ]
/*/*
[*[text() = 'SALAM'][2]
and
not([*[text() = 'SALAM'][3])
]
使用以下选项可能更有效:
/*/*[count(*[text() = 'SALAM']) = 2 ]
/*/*
[*[text() = 'SALAM'][2]
and
not([*[text() = 'SALAM'][3])
]
尽可能避免使用/
伪运算符,因为在许多情况下它可能非常慢