2010-05-29 16 views
0

question simple: Pourquoi une fonction PHP appelé à partir d'une feuille de style XSL Je viens de revenir le dernier argument passé:PHP et XSLTProcessor Misbehavior

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); 

I Obtenir la sortie

c 

et si j'appelle <xsl:value-of select="php:function('date')" /> je viens d'obtenir date comme ma sortie. Cela me semble étrange.

info Version:
PHP 5.3.2
libxslt version 1.1.26
libxslt compilé contre libxml Version 2.7.6
EXSLT
libexslt ENABLED Version 1.1.26

+1

vous mettez l'espace de noms PHP dans votre balise racine de feuille de style? Comme '' – zneak

+0

@zneak - cela pourrait aider! Répondez et obtenez votre +10 :) –

Répondre

1

Vous devez la PHP xmlns dans votre balise racine <stylesheet>:

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

Assez simple, mais j'avais commencé à cette feuille de style pendant une heure! –