XPath 3 es la última versión del lenguaje de rutas XML , un lenguaje de consulta para seleccionar nodos en documentos XML . Reemplaza 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.
En comparación con XPath 2.0 , XPath 3.0 agrega las siguientes características nuevas:
function($a as xs:double, $b as xs:double) as xs:double { $a * $b }
collection()/(let $a := . return function() { $a })
$f[2]("Hi there")
$f
"Hi there"
math:pi
Q{http://www.w3.org/2005/xpath-functions/math}pi
||
operador se puede utilizar para la concatenación de cadenas : $a || $b
es equivalente a .fn:concat($a, $b)
!
operador realiza una asignación simple: E1 ! E2
evalúa E2
cada elemento de la secuencia E1
y concatena los elementos resultantes. Esto es comparable al operador de ruta /
, pero el !
operador no realiza la eliminación de duplicados ni la ordenación de los documentos de los resultados.XPath 3.1 agrega principalmente compatibilidad con tipos de datos de matriz y mapa ( matriz asociativa ). Estos tipos y sus funciones asociadas tienen como objetivo facilitar el trabajo con datos JSON .
Otra innovación es el operador de flecha =>
para el encadenamiento de funciones. Por ejemplo, la expresión XPath 2.0
contiene ( mayúsculas ( subcadena antes ( $ en , ' ' )), 'X' )
Ahora se puede escribir
$ in = > substring-before ( ' ' ) = > mayúscula () = > contiene ( 'X' )