Comment affecter une valeur conditionnelle à une variable XSLT?
Eric van der Vlist,
Dyomedea (vdv@dyomedea.com).
lundi 22 janvier 2001
Dans mon template, si j'écris:
<xsl:variable name="nbcarmaxline">100</xsl:variable>
je n'ai pas de soucis.
Par contre, si je remplace par:
<xsl:choose>
<xsl:when test="//modeAffichage='Modification'">
<xsl:variable name="nbcarmaxline">100</xsl:variable>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="nbcarmaxline">75</xsl:variable>
</xsl:otherwise>
</xsl:choose>
ma variable n'est plus reconnue.
XSLT voit bien les 2 variables, mais vous vous heurtez à un problème de champ de définition (scope) une variable n'étant connue que dans l'élément dans laquelle elle est déclarée.
Quand vous écrivez:
<xsl:choose>
<xsl:when test="//modeAffichage='Modification'">
<xsl:variable name="nbcarmaxline">100</xsl:variable>
</xsl:when>
la première variable "nbcarmaxline" n'est donc connue que dans l'élément "xsl:when" dans laquelle elle est déclarée !
Il faut donc inverser les instructions d'affectation et de test et écrire:
<xsl:variable name="nbcarmaxline">
<xsl:choose>
<xsl:when test="//modeAffichage='Modification'">100</xsl:when>
<xsl:otherwise>75</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Jean-François ROMAN: "[xml-tech] Pb de variable..."Michael Tartar: "[xml-tech] Re: Pb de variable..."Eric van der Vlist: "[xml-tech] Re: Pb de variable..."Frederic Laurent: "[xml-tech] les variables en xsl"Eric van der Vlist: "[xml-tech] Re: les variables en xsl"
Copyright 2001,
Eric van der Vlist.
|