Bonjour,
Stocker un jeu de noeud dans une variable est possible si l'on utilise l'attribut select de xsl:variable :
En revanche, je désire définir le contenu de la variable entre ses balises et non par select, parce que notement, j'ai besoin de tests conditionnels pour le choix de l'affectation, je n'obtient plus un jeu de noeuds.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:variable name="var" select="//b" />
Reformuler autrement, j'aimerais bien qu'un call-template puisse me retourner un jeu de noeud, de la même manière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:variable name="var"> <xsl:value-of select="//b" /> </xsl:variable>
J'utilise le moteur XSLT de Firefox qui me donne une erreur lorsque j'essaie d'accèder à la propriété p d'un noeud b du code test.xml suivant :
le fichier test.xsl étant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="test.xsl"?> <a> <b p="1">x</b> <b p="2">y</b> <b p="3">z</b> </a>
La ligne fautive :
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <xsl:template match="/"> <html> <body> <xsl:variable name="var"> <xsl:call-template name="fonction" /> </xsl:variable> <xsl:value-of select="//b[@p = '2']" /> <br /> <xsl:value-of select="$var" /> <br /> <xsl:value-of select="$var/@p" /> </body> </html> </xsl:template> <xsl:template name="fonction"> <xsl:value-of select="//b[@p = '2']" /> </xsl:template> </xsl:stylesheet>
Les deux premiers value-of affichent le contenu de la balise b c'est à dire "y". J'ai tenté à tout hasard un copy-of à la place de value-of dans le template "fonction".
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:value-of select="$var/@p" />
Avez vous une solution à ce problème ?
Blustuff.
Partager