tutorial regulares online herramienta expresiones ejemplo consultas condiciones and xml xslt xpath

xml - regulares - Comodines XPath en el nombre del nodo



xpath and xslt (3)

Con XPath 1.0 puede usar el patrón /data/stats/*[substring-after(name(), ''_cost'') = ''''] . Eso verifica si el nombre del elemento termina con el sufijo _cost . En XPath 2.0 hay fn:ends-with(str, str) y su expersión correspondiente será *[ends-with(name(), ''_cost'')] .

Quiero tomar un nodo de mi archivo XML, el nodo tiene un prefijo como "latest_", pero esto puede cambiar y me gustaría que mi XSLT sea lo más fluido posible. Aquí está el XPath que quiero usar:

/data/stats/*_cost

Esto debería coincidir con latest_cost , newest_cost , anything_cost . ¿Hay alguna forma de hacerlo?

Saludos :-)


Esta es la expresión correcta de XPath 1.0 que selecciona un elemento con los últimos 5 caracteres de nombre igual a "_cost" en cualquier espacio de nombres.

/data/stats/*[substring(name(), string-length(name()) - 4) = ''_cost'']


También puedes usar contains

p.ej

/data/stats[contains(.,''_cost'')]