php xslt saxon

Soporte XSLT 2.0 PHP. ¿Cuando?



saxon (6)

¿En el más cercano futuro? Ninguna.

PHP5 se basa exclusivamente en LibXSLT para el procesamiento XSLT (Sablotron está desactivado), y no hay ningún plan para admitir XSLT 2.0 en esta biblioteca.

¿Cuáles son las posibilidades de ver procesadores XSLT 2.0 como saxon para php en un futuro cercano?


Esto no es del todo cierto.

Si está ejecutando PHP en la plataforma de Windows, entonces hay una extensión relativamente fácil de configurar para el procesador AltovaXML XSLT 2.0 ... http://sourceforge.net/projects/xslt2processor/

Si está ejecutando PHP en Linux, necesitará instalar un puente PHP / Java. Esto implica ejecutar un servlet de Java contenido como Apache / Tomcat, y es bastante complicado. También hay algún código híbrido relativamente complejo de java / php necesario para que esto funcione. Si estás interesado, puedo publicar más detalles.


No hay compatibilidad con XSLT2.o hasta ahora en PHP, la única opción para usar XSLT2.0 es usar SAXON que está basado en Java y por lo tanto tendrá que algo como el procesador PHP XSLT2.0, consulte este enlace: http: // sourceforge.net/projects/xslt2processor/

XML_XSLT2Processor es una clase PHP que le permite realizar transformaciones XSLT 2.0 dentro de PHP utilizando SAXON o AltovaXML.


Hay un transpiler XSL 2.0 de fuente abierta en PHP que se puede encontrar en github

También se ha lanzado Saxon / C versión 1.0.0 compatible con XSLT 2.0 / 3.0 en C / C ++ y PHP.


PHP usa LibXML2 para implementar todas las clases XML. Es muy rápido y estable, pero hoy (2013) solo es compatible con XPath1 y XSLT1 ... Quizás la comunidad solo necesita esta solución más rápida y sencilla, y no necesita los poderes de XSLT2 (ver "opción0").

option0: ¡intenta usar una mejor separación MVC!

... Muchas plantillas, utilizadas como Vista en un contexto MVC, no necesitan los poderes de XSLT2 : vea una buena explicación de por qué . Vea cómo algunos buenos proyectos de PHP están usando XSLT1

opción1: prueba una implementación no convencional

Como mostró @collapsar en esta pregunta similar, hay una fuente abierta desarrollada para extender el clásico LibXML2 con algunos poderes de XSLT2 y XPath2. Ver http://www.explain.com.au/libx/

La comunidad PHP aún no está motivada para completar esta evolución ... ¿Por qué? Tal vez solo miedo de perder algo de rendimiento y estabilidad. Tal vez solo la falta de mano de obra para completar la tarea , principalmente en un controlador PHP.

option2: habilita XSLT1 o XPath1 con funciones / conexiones de PHP

Vea el ejemplo de trabajo habitual aquí, registrando las funciones de PHP en XPath1 o XSLT1 . Estoy usando esta solución en mis proyectos.


Finalmente, hay una respuesta positiva a esta pregunta .

Justo hoy, el Dr. Michael Kay anunció Saxon / C.

Consulte esto para obtener más información: https://.com/a/20275114/36305