Élément <xsl:variable>
Spécifie une valeur liée dans une expression.
<xsl:variable
name = QName
select = Expression
</xsl:variable>
Attributs
- name
Obligatoire. Le Noms qualifiés de la variable.
- 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)]"/>