Articulo de referencia

XPath 3

XPath 3 es la última versión del lenguaje de rutas XML , un lenguaje de consulta para seleccionar nodos en documentos XML . Sustituye a XPath 1.0 y XPath 2.0 . XPath 3.0 se conv...

XPath 3 es la última versión del lenguaje de rutas XML , un lenguaje de consulta para seleccionar nodos en documentos XML . Sustituye a XPath 1.0 y XPath 2.0 .

XPath 3.0 se convirtió en una recomendación del W3C el 8 de abril de 2014, mientras que XPath 3.1 se convirtió en una recomendación del W3C el 21 de marzo de 2017.

Nuevas características en XPath 3.0

En comparación con XPath 2.0 , XPath 3.0 añade las siguientes características nuevas:

expresiones de función en línea
Se pueden crear funciones anónimas en un contexto de expresión . Por ejemplo, la expresión crea una función que devuelve el producto de sus dos argumentos. La expresión crea una secuencia de funciones, cada una de las cuales devuelve un nodo diferente de una colección.function($aasxs:double,$basxs:double)asxs:double{$a*$b}collection()/(let$a:=.returnfunction(){$a})
Llamadas a funciones dinámicas
Los valores de las funciones pueden ser llamados sin ser referenciados por su nombre. Por ejemplo, se obtiene el segundo elemento de la secuencia y se invoca como una función, pasando la cadena como argumento.$f[2]("Hi there")$f"Hi there"
Tipos de sindicatos
Los tipos de unión , tal como se definen en el esquema XML , pueden utilizarse en conversiones de tipos y firmas de tipos de funciones .
Literales de espacio de nombres
Los espacios de nombres XML se pueden referenciar usando literales URI entre llaves . Por ejemplo, el nombre calificado se puede expandir a , incrustando el URI del espacio de nombres dentro del prefijo.math:piQ{http://www.w3.org/2005/xpath-functions/math}pi
operador de concatenación de cadenas
El nuevo ||operador puede utilizarse para la concatenación de cadenas : $a || $bes equivalente a .fn:concat($a,$b)
Operador de mapeo
El nuevo !operador realiza un mapeo simple: evalúa cada elemento de la secuencia y concatena los elementos resultantes. Esto es comparable al operador de ruta , pero no elimina duplicados ni ordena los resultados.E1 ! E2E2E1/!

Nuevas características en XPath 3.1

XPath 3.1 añade principalmente compatibilidad con los tipos de datos array y map ( array asociativo ). Estos tipos y su funcionalidad asociada están pensados ​​para facilitar el trabajo con datos JSON .

Otra innovación es el operador flecha =>para encadenar funciones. Por ejemplo, la expresión XPath 2.0.

contiene ( mayúsculas ( subcadena-antes ( $ en , ' ' )), 'X' )

Ahora se puede escribir

$ en = > subcadena-antes ( ' ' ) = > mayúsculas () = > contiene ( 'X' )

Referencias