Mal à l'aide de XSLT variables pour stocker les attributs

Dans mon xslt modèle je vais avoir un for-each déclaration. Dans ce for-each je suis en train de différentes conditions. Je veux avoir une variable de type string qui contient les attributs de classe qui sera attribué à un <li>.

Comme je suis nouveau sur xslt merci de me donner des exemples ou comment puis-je obtenir ce que je veux faire.

Ici est un peu mon code afin que vous puissiez voir ce que je prends au sujet de:

<xsl:if test="count($currentPage/ancestor-or-self::* [@level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']) &gt; '0'">
    <xsl:for-each select="$currentPage/ancestor-or-self::* [@level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
        <li><xsl:attribute name="class">
                topNavigLi
                page<xsl:number value="position()" format="1" />
                <xsl:if test="@nodeName='Network' ">
                    has_submenu network
                </xsl:if>
            </xsl:attribute>
            <xsl:if test="@id = $currentPage/@id">
                <xsl:attribute name="class">
                    current topNavigLi
                    page<xsl:number value="position()" format="1" />
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="position() = last()">
                <xsl:attribute name="class">
                    last topNavigLi
                    page<xsl:number value="position()" format="1" />
                </xsl:attribute>
            </xsl:if>

            <xsl:if test="@id = $currentPage/@id and position() = last()">
                <xsl:attribute name="class">
                    current last topNavigLi
                    page<xsl:number value="position()" format="1" />
                </xsl:attribute>
            </xsl:if>

Combien il serait plus élégant d'avoir une variable et que concaténer à elle tout en faisant des tests.
J'ai essayé comme ça, mais ne renvoie rien.

<xsl:variable name="li_class" select="page"> </xsl:variable>

<xsl:attribute name="class">
    <xsl:value-of select="li_class" /> 
</xsl:attribute>
Qui ne fait presque pas de sens. S'il vous plaît, de modifier la question et de fournir un ensemble complet, mais les petites et clair exemple: 1. Document XML Source; 2. Résultat souhaité (uniquement lié à la problématique); 3. Explication des exigences que la transformation doit mettre en œuvre.
OK, je crois que j'ai compris la question, et encore fourni une réponse -- cependant, essayez d'exprimer vos problèmes de façon claire.
Juste pour souligner ce Dimitre dit: ce qui nous attend à désosser vos exigences de code qui ne fonctionne pas (et est fondamentalement mauvais) s'attend plutôt beaucoup.
J'aimerais voir ce changement de titre. Ce n'est pas un "Comment utiliser des variables dans XSLT" post: il ne porte que sur un problème spécifique. Malheureusement, google n'a pas réalisé encore.

OriginalL'auteur Alexa Adrian | 2012-07-24