L'élément <xsl:variable> de XSLT
Définition et utilisation
L'élément <xsl:variable> est utilisé pour déclarer une variable locale ou globale.
Remarque :Si elle est déclarée en tant qu'élément de niveau supérieur, la variable est globale, tandis qu'elle est locale si elle est déclarée dans un modèle.
Remarque :Une fois que vous avez défini la valeur d'une variable, vous ne pouvez pas la changer ou la modifier !
Avis :Conseil : Vous pouvez ajouter des valeurs à la variable à l'aide du contenu de l'élément <xsl:variable> ou de l'attribut select !
Syntaxe
<xsl:variable name="name" select="expression"> <!-- Contenu:template --> </xsl:variable>
Attribut
Attribut | Valeur | Description |
---|---|---|
name | name | Obligatoire. Définir le nom de la variable. |
select | expression | Optionnel. Définir la valeur de la variable. |
Exemple
Exemple 1
Si l'attribut select est défini, l'élément <xsl:variable> ne peut pas contenir de contenu. Si l'attribut select contient une chaîne de caractères, cette chaîne doit être encadrée par des guillemets.
Les deux exemples suivants assignent la valeur "red" à la variable "color" :
<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />
Exemple 2
Si l'élément <xsl:variable> ne contient que l'attribut name et pas de contenu, la valeur de la variable est une chaîne vide :
<xsl:variable name="j" />
Exemple 3
Exemple : l'exemple suivant assigne le contenu de l'élément <xsl:variable> à la variable "header" :
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:variable name="header"> <tr> <th>Element</th> <th>Description</th> </tr> </xsl:variable> <xsl:template match="/"> <html> <body> <table> <xsl:copy-of select="$header" /> <xsl:for-each select="reference/record"> <tr> <xsl:if category="XML"> <td><xsl:value-of select="element"/></td> <td><xsl:value-of select="description"/></td> </xsl:if> </tr> </xsl:for-each> </table> <br /> <table> <xsl:copy-of select="$header" /> <xsl:for-each select="table/record"> <tr> <xsl:if category="XSL"> <td><xsl:value-of select="element"/></td> <td><xsl:value-of select="description"/></td> </xsl:if> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>