XPath: Comment vérifier si un attribut existe?


104

Compte tenu du code XML suivant, comment écrire une requête XPath pour extraire les nœuds où l'attribut fooexiste?:

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

Réponses:


163

Court et doux:

//*[@foo]

Bien sûr, vous devriez utiliser une expression plus spécifique. Mais avec [@attributeName]vous obtenez tous les nœuds qui ont cet attribut.


25

Utilisez l'expression XPath suivante

//*[boolean(@foo)]

8

Si vous utilisez et xpath, cela peut peut-être vous aider:

count(//*[@foo])

il retournera le nombre de nœuds / enfants qui ont l'attribut foo

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.