4

假设我有一些这样的 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 表达式,第一个检查<request>具有子 a、b 和 c 的 a 是否存在,第二个检查<request>具有子 a、b 和 d 的 a 是否存在。

我该如何指定?我最接近的使用编号谓词语法,但我缺少有关如何指定多个子匹配项的内容,并且<request>未定义元素顺序的事实也让我感到困惑。

提前致谢

格伦。

4

2 回答 2

2

我想提出两个 XPath 表达式,第一个检查 a <request>with children a, bandc存在,第二个检查 a <request>with children a, band dexists

使用

boolean(/*/request[field[@id='a'] and field[@id='b'] and field[@id='c']])

对于第二个表达式使用

boolean(/*/request[field[@id='a'] and field[@id='b'] and field[@id='d']])
于 2012-12-03T13:32:21.403 回答
1

这不是你要找的吗?

request[field[@id = 'a'] and field[@id='b'] and field[@id='c']]

?

于 2012-12-03T10:33:35.813 回答