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>保証されないことに注意してください。

2 つの XPath 式を作成したいと考えています。1 つ目<request>は子 a、b、c を持つ a が存在することを確認し、2 つ目は<request>子 a、b、d を持つ a が存在することを確認します。

これを指定するにはどうすればよいですか?私が最も近いものは番号付き述語構文を使用していますが、複数の子の一致を指定する方法が欠けており、<request>要素の順序が定義されていないという事実も私をつまずかせています.

前もって感謝します

グレン。

4

2 に答える 2

2

2 つの XPath 式を作成したいと思います。1 つ目は a with children が存在することを確認し、<request>2abcは a <request>with childrenaが存在することを確認bします。d

使用:

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

2 番目の式では、次のように使用します

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 に答える