Je veux saisir un nœud de mon fichier XML, le nœud a un préfixe tel que “latest_”, mais cela peut changer et je souhaite que mon XSLT soit aussi fluide que possible. Voici le XPath que je veux utiliser:
/data/stats/*_cost
Cela doit correspondre à latest_cost
, newest_cost
, anything_cost
, y a-t-il un moyen de le faire?
À votre santé 🙂
C’est l’expression XPath 1.0 correcte qui sélectionne un élément avec les 5 derniers caractères de nom égal à “_cost” dans n’importe quel espace de noms.
/data/stats/*[subssortingng(name(), ssortingng-length(name()) - 4) = '_cost']
Avec XPath 1.0, vous pouvez utiliser /data/stats/*[subssortingng-after(name(), '_cost') = '']
pattern. Cela vérifie si le nom de l’élément se termine par le suffixe _cost
. Dans XPath 2.0, il y a fn:ends-with(str, str)
et votre expression correspondante sera *[ends-with(name(), '_cost')]
.
Vous pouvez également utiliser contains
par exemple
/data/stats[contains(.,'_cost')]