Bonjour,
Hier déjà j'avais embêté Alain avec mes questions de débutant. Et bien ce n'est pas terminé, j'en remet une couche :-(
Voilà mon fichier xmlet dans mon fichier 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 <xml> <meta-tag langue="fr"> <title>titre fr</title> </meta-tag> <meta-tag langue="de"> <title>titre de</title> </meta-tag> <body langue="fr"> nouveau texte<p>texte FR <img src="monimage fr.gif" /></p> </body> <body langue="de"> nouveau texte<p>texte DE <img src="monimage fr.gif" /></p> </body> </xml>
si je remplace
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <xsl:param name="langue" /> <xsl:param name="balise" /> <xsl:template match="/"> <xsl:copy-of select="xml/body[@langue=$langue]/node()" /> </xsl:template>
<xsl:copy-of select="xml/body[@langue=$langue]/node()" />
par
<xsl:copy-of select="xml/$balise[@langue=$langue]/node()" />
Je me retrouve avec 4 erreurs. J'ai pas mal chercher sur le net. Sauf erreur de ma part c'est une problème de "tree fragment" lié à xslt 1.0... j'ai bien essayer de regarder du coté de xslt 2.0, mais c'est mort car je suis dans un environnement php. J'approfondie mes recherches et voie qu'il y a une possibilité de transformer un "tree fragment" en "node set" avec exsl:node-set. Magique, il se trouve que le module EXSLT est installé sur mon apache.
Mais voilà, j'en suis à mes débuts en XSL et pour le moment je ne touche pas carton. Je change mon <xsl:stylesheet...> par
puis j'essaie d'utiliser exsl:node-set
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">
Et bien évidement il me pleut des erreurs : invalid expression, compilation error, etc etc. Qqun pour m'éclairer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:copy-fo select="xml/exsl:node-set($balise)[@langue=$langue]/node()" />
Un grand merci d'avance.
Grégoire
Partager