Преобразование XSL в php5 БЕЗ расширения XSL включено - PullRequest
1 голос
/ 24 февраля 2011

Я нахожусь перед глупой ситуацией ... Мне нужно, чтобы приложение, выполняющее преобразования XSLT, работало на установленном сервере, и на этом сервере настроен php5 без XSL ... Изменение решения хостинга, к сожалению, невариант, и ИТ-специалисты, отвечающие за сервер, не желают перенастраивать его и включить XSL.

Итак, вот мой глупый вопрос: возможно ли выполнить преобразование XSL без включенного XSL?(если быть точным, мне нужно преобразовать строки XML с помощью файлов XSL, если это имеет значение) Я проверил DOM, но в примерах используется класс, который вызывает фатальную ошибку в моем реальном скрипте (XSLTProcessor).

Любое предложение будет высоко ценится.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Есть несколько пакетов PEAR, которые работают с XML / XSLT.У меня нет личного опыта работы с ними.

http://pear.php.net/packages.php?catpid=22&catname=XML

Обратите внимание, что вам не нужно устанавливать pear, чтобы получить пакет с грушей, вы можете скачатьвручную.

1 голос
/ 24 февраля 2011

Я никогда не слышал о реализации PHP XSLT-процессора. Если бы он существовал, он, вероятно, был бы сложным, прослушивался и, скорее всего, не содержался.

Вам следует поискать альтернативные решения, такие как использование удаленного сервера, задачей которого является выполнение преобразования (если это применимо к вашему случаю), или, возможно, использование exec() для запуска процессора командной строки, если это возможно.

В зависимости от сложности преобразования вам может быть лучше выполнить его в PHP с SimpleXML . Я не говорю о создании процессора XSLT здесь, это было бы сумасшествием, просто вместо использования чего-то вроде

<xsl:for-each select="/foo/bar">
    <xsl:value-of select="@baz" />
</xsl:for-each>

вы можете использовать

foreach ($foo->bar as $bar) {
    echo $bar['baz'];
}

Конечно, это только реалистичное решение, если ваша таблица стилей очень простая / простая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...