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 apparaître 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 "non" sur Google est difficile!
Le xpath suivant devrait fonctionner
/root/*[not(self::terminate)]
Je pense que vous pouvez aussi le faire avec ça
/root/*[not(name()='terminate')]
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 le second.