Caractères génériques XPath sur le nom du noeud

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')]