99 votes

XPath: Comment faire pour vérifier si un attribut existe?

Étant donné le XML suivant, comment puis-je écrire une requête XPath pour tirer les nœuds où l'attribut foo existe?:

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

156voto

Felix Kling Points 247451

Court et doux:

//*[@foo]

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

25voto

Ru5 Points 171

Utiliser l'expression XPath suivante

//*[boolean(@foo)]

8voto

fritz Points 46

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

count(//*[@foo])

il sera de retour le comte de nœud d'enfants qui ont l'attribut " foo

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X