PHP和XSLTProcessor错误行为

时间:2010-05-29 18:29:01

标签: php libxml2 libxslt xslt

简单问题:为什么从XSL样式表调用的PHP函数只返回传递的最后一个参数:

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 个答案:

答案 0 :(得分:1)

您需要<stylesheet>根标记中的PHP xmlns:

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