Неправильное поведение PHP и XSLTP-процессора - PullRequest
0 голосов
/ 29 мая 2010

Простой вопрос: почему функция PHP вызывается из таблицы стилей XSL, просто возвращая последний переданный аргумент:

foo.xsl:

<xsl:template match="/">
    <xsl:value-of select="php:function('date','c')" />
</xsl:template>

PHP:

...  
$xsl = new XSLTProcessor();
$xsl->registerPHPFunctions();
$xsl->importStylesheet($fooStylesheet);
echo $xsl->transformToXML($myXML);

Получаю вывод

c

и если я позвоню <xsl:value-of select="php:function('date')" />, я получу date в качестве результата. Мне кажется странным.

Информация о версии:
PHP 5.3.2
libxslt версия 1.1.26
libxslt скомпилировано с libxml версии 2.7.6
EXSLT включен
libexslt Версия 1.1.26

1 Ответ

1 голос
/ 29 мая 2010

Вам нужен PHP xmlns в вашем корневом теге <stylesheet>:

<stylesheet xmlns:php="http://php.net/xsl">
...