wake-up-neo.com

XPath: Wie überprüfe ich, ob ein Attribut existiert?

Wie schreibe ich in der folgenden XML-Datei eine XPath-Abfrage, um Knoten mit dem Attribut foo abzurufen ?:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>
94
Byron Whitlock

Kurz und bündig:

//*[@foo]

Natürlich sollten Sie einen genaueren Ausdruck verwenden. Aber mit [@attributeName] Sie erhalten alle Knoten, die dieses Attribut haben.

149
Felix Kling

Verwenden Sie den folgenden XPath-Ausdruck

//*[boolean(@foo)]
23
Ru5

Wenn Sie und xpath verwenden, kann dies Ihnen vielleicht helfen:

count(//*[@foo])

es wird die Anzahl der Knoten/Kinder zurückgegeben, die das Attribut foo haben

8
fritz