假设我有一些像这样的XML:
<group>
<request>
<field id="a"/>
<field id="b"/>
<field id="c"/>
</request>
<request>
<field id="a"/>
<field id="b"/>
<field id="d"/>
</request>
</group>
请注意,<request>
元素的顺序无法保证。
我想提出两个XPath表达式,第一个检查带有子节点a,b和c的<request>
是否存在,第二个带有子节点a,b和d的<request>
存在。
如何指定?我最接近的是使用带编号的谓词语法,但我遗漏了一些关于如何指定多个子匹配的内容,以及未定义<request>
元素顺序的事实也让我感到沮丧。< / p>
提前致谢
格伦。
答案 0 :(得分:2)
我想提出两个XPath表达式,第一个检查它
<request>
有孩子a
,b
和c
存在,第二个 有孩子<request>
,a
和b
的{{1}}存在
使用强>:
d
对于第二个表达式使用:
boolean(/*/request[field[@id='a'] and field[@id='b'] and field[@id='c']])
答案 1 :(得分:1)
这不是你要找的吗?
request[field[@id = 'a'] and field[@id='b'] and field[@id='c']]