XPath pour obtenir tous les éléments enfants sauf un avec un nom spécifique?
Comment cibler tous les éléments d'un document sauf un nom d'élément particulier?
Par exemple, je veux exclure les éléments terminate
. Ils peuvent se produire tout au long du document.
<root>
<terminate attr="1" />
<other>
The brown fox jumps over the fence.
<terminate>
<b>stuff</b>
</terminate>
</other>
</root>
J'ai essayé d'utiliser l'opérateur not(..)
sans succès probablement parce que je l'utilise mal.
Et franchement essayer de Google ' Pas ' est difficile!
28
demandé sur
Rudi Kershaw
2010-11-08 08:38:40
2 réponses
Le xpath suivant devrait fonctionner
/root/*[not(self::terminate)]
Aussi, je pense que vous pouvez le faire avec ceci aussi
/root/*[not(name()='terminate')]
44
répondu
Jagmag
2010-11-08 05:42:26
Si vous utilisez XPath 2.0, vous pouvez utiliser
/root/* except /root/terminate
Qui fait ce que vous attendez. Il correspond aux nœuds qui existent dans la première séquence mais pas dans la seconde.
1
répondu
Rudi Kershaw
2017-12-13 11:57:24