En utilisant XPath, comment sélectionner les nœuds qui n'ont pas d'attributs (où le nombre d'attributs = 0) ?
Par exemple :
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
En utilisant XPath, comment sélectionner les nœuds qui n'ont pas d'attributs (où le nombre d'attributs = 0) ?
Par exemple :
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
@MarekCzaplicki voir la réponse ci-dessous pour traiter ce cas. stackoverflow.com/questions/1323755/
Pour répondre au commentaire de Marek Czaplicki et développer la réponse
//node[not(@*) or not(string-length(@*))]
.... sélectionnera tous les éléments de nœuds ayant zéro attribut OU dont les attributs sont tous vides. Si vous vous intéressez à un attribut particulier plutôt qu'à tous les attributs, vous pouvez utiliser la méthode suivante
//node[not(@attribute1) or not(string-length(@attribute1))]
...et cela sélectionnerait tous les éléments de nœuds qui n'ont pas d'attribut appelé attribute1
OU qui ont un attribute1
qui est vide.
En d'autres termes, les éléments suivants seraient sélectionnés par l'une ou l'autre de ces expressions xpath.
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
Voir l'exemple de jsfiddle ici
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.