node make how attribute and xml xpath

xml - make - ¿Puede XPath coincidir en partes del nombre de un elemento?



xpath node (3)

Quiero hacer esto:

// * fu

que devuelve todos los nodos cuyo nombre termina en fu , como <tarfu /> y <snafu /> , pero no <fubar />


Haz algo como:

//*[ends-with(name(), ''fu'')]

Para obtener una buena referencia de XPath, consulte el tutorial de W3Schools .


Luché con la respuesta de Dimitre Novatchev, no devolvería las coincidencias. Sabía que tu XPath debe tener una sección que diga que "fu" tiene longitud 2.

Se recomienda tener una longitud de cadena (''fu'') para determinar qué subcadena.

Para aquellos que no pueden obtener resultados con su respuesta y que requieren una solución con xpath 1.0:

//*[substring(name(), string-length(name()) - string-length(''fu'') +1) = ''fu'']

Encuentra coincidencias de elementos que terminan en "fu"

o

//*[substring(name(), string-length(name()) - string-length(''Position'') +1) = ''Position'']

Encuentra coincidencias con elementos que terminan con "Posición"


Esta respuesta es para XPath 1.0 donde no hay un equivalente de la función de finalización-con () de la función XPath 2.0 .

La siguiente expresión XPath 1.0 selecciona todos los elementos en el documento xml, cuyos nombres terminan con la cadena "fu":

//*[substring(name(),string-length(name())-1) = ''fu'']