XPath: come verificare se esiste un attributo?


104

Dato il seguente XML, come scrivo una query XPath per estrarre i nodi in cui fooesiste l'attributo ?:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

Risposte:


163

Breve e dolce:

//*[@foo]

Ovviamente dovresti usare un'espressione più specifica. Ma con [@attributeName]tu ottieni tutti i nodi che hanno quell'attributo.


25

Usa la seguente espressione XPath

//*[boolean(@foo)]

8

Se usi e xpath, questo forse può aiutarti:

count(//*[@foo])

restituirà il conteggio del nodo / figlio che ha l'attributo pippo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.