Поддержка PHP XSLT 2.0. Когда? - PullRequest
7 голосов
/ 27 ноября 2009

Каковы шансы увидеть процессоры XSLT 2.0, такие как saxon для php, в ближайшем будущем?

Ответы [ 6 ]

6 голосов
/ 04 декабря 2009

Это не совсем так.

Если вы работаете с PHP на платформе Windows, то расширение для процессора AltovaXML XSLT 2.0 относительно легко настроить ... http://sourceforge.net/projects/xslt2processor/

Если вы используете PHP в Linux, вам нужно будет установить PHP / Java Bridge. Это включает в себя запуск Java-сервлета, такого как Apache / Tomcat, и довольно сложный процесс. Существует также довольно сложный гибридный код Java / PHP, необходимый для этой работы. Если вы заинтересованы, я могу опубликовать более подробную информацию.

3 голосов
/ 29 ноября 2013

Наконец, есть положительный ответ на этот вопрос .

Только сегодня доктор Майкл Кей объявил саксонский / C .

См. Это для получения дополнительной информации: https://stackoverflow.com/a/20275114/36305

3 голосов
/ 27 ноября 2009

В ближайшее время? Ни один.

PHP5 полагается исключительно на LibXSLT для обработки XSLT (Sablotron отсутствует), и в этой библиотеке нет поддержки XSLT 2.0.

1 голос
/ 08 февраля 2016

В PHP есть транспайлер XSL 2.0 с открытым исходным кодом, который можно найти на github

Также была выпущена версия Saxon / C 1.0.0 с поддержкой XSLT 2.0 / 3.0 на C / C ++ и PHP .

1 голос
/ 18 июля 2012

В PHP до сих пор нет поддержки XSLT2.o, единственная возможность использовать XSLT2.0 - это использовать SAXON, который основан на Java, и, следовательно, вам потребуется что-то вроде процессора PHP XSLT2.0, см. Эту ссылку: http://sourceforge.net/projects/xslt2processor/

XML_XSLT2Processor - это класс PHP, который позволяет вам выполнять XSLT 2.0 преобразования в PHP с использованием SAXON или AltovaXML.

0 голосов
/ 26 ноября 2013

PHP использует LibXML2 для реализации всех классов XML. Он очень быстрый и стабильный, но сегодня (2013) только поддерживает XPath1 и XSLT1 ... Возможно, сообществу нужно только это более быстрое и простое решение, а не нужны возможности XSLT2 ( см. "option0").

option0: попробуйте использовать лучшее разделение MVC!

... Многие шаблоны, используемые как Просмотр в контексте MVC, не нуждаются в полномочиях XSLT2 : см. хорошее объяснение, почему . Посмотрите, как некоторые хорошие проекты PHP используют XSLT1

option1: попробуйте неосновную реализацию

Как показал @collapsar , на этот похожий вопрос являются открытым исходным кодом, разработанным для расширения классического LibXML2 с некоторыми возможностями XSLT2 и XPath2. Увидеть http://www.explain.com.au/libx/

Сообщество PHP еще не заинтересовано в завершении этой эволюции ... Почему? Может быть, просто боюсь потерять некоторую производительность и стабильность. Возможно, просто не хватает рабочей силы для выполнения задачи , в основном в драйвере PHP.

option2: расширение возможностей XSLT1 или XPath1 с функциями / связями PHP

См. Пример обычного обходного пути здесь, путем регистрации функций PHP в XPath1 или XSLT1 . Я использую это решение в своих проектах.

...