xml xpath xml-parsing xpath-2.0

xml - ¿Qué navegadores son compatibles con Xpath 2.0?



xml-parsing xpath-2.0 (4)

Recientemente he estado trabajando con XPath y he estado buscando información sobre qué navegadores son compatibles con XPath 2.0 sin mucha suerte. Lo mejor que pude encontrar fue la tabla de comparación de tecnologías de consulta de varios motores de renderizado.

Esto claramente me dice que Firefox e IE (todas las versiones de ambos) no son compatibles con XPath 2.0, pero ¿qué pasa con los otros motores de renderizado para Chrome, Safari, etc.? ¿Alguien tiene alguna información sobre esto o sabe dónde se puede encontrar?




No conozco ninguna, y la lista oficial de implementaciones tampoco incluye una.

Una alternativa, por supuesto, con menos rendimiento que una implementación nativa, sería XQIB que es una implementación de XQuery en JavaScript. XPath 2.0 está completamente incluido como un subconjunto en XQuery 1.0, por lo que podrá usar todas las características de XPath 2.0 (y más) en todos los navegadores con soporte de JavaScript.

Una muestra corta tomada de su sitio web sobre cómo usarla:

<script type="text/javascript" src="mxqueryjs/mxqueryjs.nocache.js"></script> <script type="application/xquery"> b:alert( let $x := <a><b>2</b><c>4</c></a> return xs:string($x/b * $x/c) ) </script>


También está Saxon CE , una implementación de código abierto de Javascript de XSLT 2.0. Como XSLT 2.0 incluye XPath 2.0, esto proporciona una implementación de XPath 2.0 en el navegador. Sin embargo, no está incorporado.

Acabo de probar la versión actual de Safari (7.0.6) y no acepté las funciones XPath 2.0 que le di:

> document.evaluate("starts-with(''foo'', ''f'')", document.documentElement, null, XPathResult.BOOLEAN_TYPE, null); < XPathResult > document.evaluate("ends-with(''foo'', ''o'')", document.documentElement, null, XPathResult.BOOLEAN_TYPE, null); < Error: INVALID_EXPRESSION_ERR: DOM XPath Exception 51

Así que diría que WebKit (específicamente el motor JS, SquirrelFish / Nitro) actualmente no es compatible con XPath 2.0.