Partager via


Élément <xsl:variable>

Spécifie une valeur liée dans une expression.

<xsl:variable
  name = QName
  select = Expression
</xsl:variable>

Attributs

  • select
    La valeur de l'attribut est une Expressions, et la valeur de la variable est l'objet qui résulte de l'évaluation de l'expression. Lorsque cet attribut est spécifié, le contenu de <xsl:variable> doit être vide.

Informations sur l'élément

Nombre d'occurrences

Illimité

Éléments parents

xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:for-each, xsl:if, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:stylesheetxsl:template, xsl:variable, xsl:when, xsl:with-param, éléments de sortie

Éléments enfants

xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, éléments de sortie

Notes

La valeur de la variable peut être un objet de n'importe quel type pouvant être retourné par une expression. L'élément <xsl:variable> peut spécifier la valeur de la variable de trois façons :

  • Si l'élément possède un attribut select, la valeur de l'attribut doit être une expression et la valeur de la variable est l'objet qui résulte de l'évaluation de l'expression. Dans ce cas, le contenu de l'élément doit être vide.

  • Si l'élément n'a pas d'attribut select et a un contenu non vide, par exemple s'il contient un ou plusieurs nœuds enfants, c'est ce contenu qui spécifie la valeur. Le contenu est un modèle qui est instancié pour fournir la valeur de la variable. La valeur est un fragment d'arborescence résultat équivalent à une collection de nœuds qui contient juste un seul nœud racine ayant pour enfants la séquence de nœuds produite par l'instanciation du modèle. L'URI de base des nœuds contenus dans le fragment d'arborescence résultat est l'URI (Uniform Resource Identifier) de base de l'élément de liaison des variables.

    Une erreur se produit si un membre de la séquence de nœuds créé par l'instanciation du modèle est un nœud d'attribut ou un nœud d'espace de noms, car un nœud racine ne peut pas avoir pour enfant un nœud d'attribut ou un nœud d'espace de noms.

  • Si le contenu est vide et n'a pas d'attribut select, la valeur de la variable est une chaîne vide. Donc

    <xsl:variable name="x"/>
    

    est équivalent à

    <xsl:variable name="x" select="''"/>
    

    Lorsqu'une variable est utilisée pour sélectionner des nœuds par leur position, veillez à éviter ceci :

    <xsl:variable name="n">2</xsl:variable>
    ...
    <xsl:value-of select="item[$n]"/>
    

    Ce code produira la valeur du premier élément, car la variable « n » sera liée à un fragment d'arborescence résultat, pas à un nombre. Utilisez plutôt ceci :

    <xsl:variable name="n" select="2"/>
    ...
    <xsl:value-of select="item[$n]"/>
    

    ... ou cela :

    <xsl:variable name="n">2</xsl:variable>
    ...
    <xsl:value-of select="item[number($n)]"/>
    

Voir aussi

Référence

Élément <xsl:param>