[XSLT] Portée de variables dans un switch
Bonjour à tous,
Je souhaites générer la class des liens de mon menu via xslt.
Mais ne criez pas, j'ai bien compris que la portée des variables est locale au noeud où elles ont été déclarées.
Mon problème qui n'en est pas vraiment un, plus un souci d'organisation, optimisation, pour éviter les répétitions de mon code.
Mon code actuel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <ul id="liste_categorie">
<xsl:variable name="categorie" select="col2/liste_article/@categorie" />
<xsl:for-each select="col1/liste_categorie/categorie">
<xsl:choose>
<xsl:when test="$categorie = @id">
<xsl:variable name="class_menu" select="string('actif')" />
</xsl:when>
<xsl:otherwise>
<xsl:variable name="class_menu" select="string('normal')" />
<xsl:value-of select="$class_menu" />
</xsl:otherwise>
</xsl:choose>
<li>
<a href="?cid={@id}&categorie={@rewrite}" class="{$class_menu}">
<xsl:value-of select="self::categorie" />
</a>
<!-- <span>(<xsl:value-of select="@nb" />)</span> -->
</li>
</xsl:for-each>
</ul> |
Là, en l'état j'ai bien entendu une erreur comme quoi $class_menu est null.
Y'a t-il un moyen de faire sans répéter dans chaque condition du switch ma balise a ?