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
XSL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager