Проект Saxon-C предоставляет PHP API для своей реализации XSLT 2.0.
Вот основной процесс установки:
Для сборки расширения PHP Saxon / C на вашем компьютере должны быть следующие пакеты: make, php-devel, (php5-dev / php55-dev / php55w-devel), apache2 или httpd, gcc-c ++ или g ++, gcj (или просто ссылка на файл jni.h)
Запустите команды:
phpize
./configure --enable-saxon
make
sudo make install
Обновите файл php.ini (если вы используете Ubuntu, он обычно находится в каталоге / etc / php5 / apache2 / '), чтобы он содержал расширение php. Вставьте следующее в раздел «Динамические расширения»: extension = saxon.so
Запустите команду:
sudo service apache2 restart
Пример кода:
<?php
/* simple example to show transforming to string */
function exampleSimple1($proc, $xmlfile, $xslFile){
$proc->setSourceFile($xmlfile);
$proc->setStylesheetFile($xslFile);
$result = $proc->transformToString();
if($result != null) {
echo '<b/>exampleSimple1:</b/><br/>';
echo 'Output:'.$result;
} else {
echo "Result is null";
}
$proc->clearParameters();
$proc->clearProperties();
}
$foo_xml = "xml/foo.xml";
$foo_xsl = "xsl/foo.xsl";
$proc = new SaxonProcessor();
//On Windows we recommend setting the cwd using the overloaded constructor
//because there remains an issue with building Saxon/C with PHP when using the function VCWD_GETCWD. i.e. $proc = new SaxonProcessor('C://www/html//trax//');
$version = $proc->version();
echo 'Saxon Processor version: '.$version;
echo '<br/>';
exampleSimple1($proc, $foo_xml, $foo_xsl);
?>
Библиотеки libxslt2 и libexslt, которые ограничены поддержкой XSLT 1.0, XPath 1.0 и EXSLT, используются для обеспечения процессора XSLT по умолчанию для PHP. Проект XML_XSLT2Processor предназначен для предоставления пути обновления.
Вот основной процесс установки:
Следуйте инструкциям на сайте процессора, который вы хотите использовать для получения инструкций по установке этого процессора XSLT. По сути, вам потребуется извлечь двоичный файл процессора в какой-либо каталог.
После настройки процессора вы можете загрузить XML_XSLT2Processor.
Использование программы установки PEAR
Если у вас еще нет установщика PEAR, ознакомьтесь с инструкциями по установке на сайте PEAR (в основном в Windows вы запускаете файл go-pear.bat в папке PHP и в типичном случае нажимаете «Enter»). полностью) и установите программу установки PEAR, также называемую «Менеджер пакетов PEAR».
Когда у вас есть установщик PEAR, вы можете установить из него XML_XSLT2Processor, просто набрав
путь установки груши / к / архиву / tgz /
но заменить путь конечно. Например, если версия 0.5.3 была в той же папке, что и папка PHP, вы можете установить ее с помощью команды
груша установить XML_XSLT2Processor_v0_5_3.tgz
Ручная установка
Если у вас нет (доступа) к установщику PEAR, вы все равно можете установить XML_XSLT2Processor, распаковав содержимое архива в любой каталог. Однако рекомендуется, чтобы этот каталог был одним из путей в вашем include_path, который вы можете указать в php.ini. Чтобы более точно эмулировать установщик PEAR, вы также можете переименовать каталог «XSLT2Processor-verion» в «XML».
Использование
Как только все вышеперечисленное выполнено, вы можете создать новый файл PHP и включить в него XML_XSLT2Processor. Если вы использовали установщик PEAR, «XSLT2Processor.php» должен быть доступен из папки «XML», например:
<?php
include "XML/XSLT2Processor.php";
//The rest of the code
?>
Вам понадобится строка включения в PHP-файле, который будет использовать класс, и это должно произойти до того, как вы воспользуетесь любой из функций в этом классе. Остальная часть документации покажет вам, как создать класс XML_XSLT2Processor, а также объяснит прототип каждой функции и даст несколько примеров.
Обратите внимание, что если вы работали с расширением PHP XSL перед его использованием, единственное, что вы действительно должны знать, это функция XML_XSLT2Processor :: __ construct (). Остальное совместимо с ним, хотя некоторые новые функции доступны только здесь. Помните, что функции registerPHPFunctions () и setProfiling () недоступны из-за архитектуры класса (не являющейся расширением PECL и все ...).
Ссылки