[XSL][PHP] probleme de passage de parametres...
Bonjour,
j'essaye de passer un parametre de mon script php a un document xslt...
si dans le xslt, je tape <xsl:value-of select="$Critere"/> la valueur affichée est correcte... si je veux me servir de cette valeur dans un for-each (<xsl:for-each select="$critere">...</xsl:for-each>, l'instruction s'execute mal (le contenu de la boucle n'est jamais parcouru...) pourtant la valeur est correcte car si je remplace le parametre par la valeur affichée par le value-of, là le resultat est pil-poil.
Si quelqu'un pouvait me dire ce qu'il se passe, je comprend pasz bien là ... MERCI BEAUCOUP
PS: extrait de mon code
PHP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // CHargement du source XML
$xml = new DOMDocument;
$xml->load('try.xml');
$xsl = new DOMDocument;
$xsl->load('full.xsl');
// Configuration du transformateur
#processeur XSLT:
$xslt = new XsltProcessor();
$xslt->importStylesheet($xsl);
$xslt -> setParameter(null, 'Critere', "/livres/livre[auteur='XXX']" );
$obj = $xslt->transformToDoc($xml);
$output = $obj->saveXML();
print($output); |
XSL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Récuperation du paramètre venant de PHP -->
<xsl:param name="Critere"/>
<xsl:output method="html" indent="yes" doctype-public="-//W3C//DTD HTML 3.2 Final//EN"/>
<!-- traitement-->
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Affichage Auteurs</TITLE>
</HEAD>
<BODY>
<TABLE width="100%" border="3">
<CAPTION><xsl:value-of select="$Critere"/></CAPTION>
<xsl:for-each select="$Critere"> <!--utilisation du parametre pour faire un tri-->
<TR>
<TD><xsl:value-of select="sciecle"/></TD>
<TD><xsl:value-of select="prenom"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet> |