L'élément <xsl:variable> permet de déclarer une variable dans une feuille de style.

<xsl:variable name="nom">
   Valeur...
</xsl:variable>

La valeur du paramètre se trouve au sein des marqueurs.

Si l'attribut select est utilisé, alors <xsl:variable> doit être un élément vide et le contenu de l'attribut sera la valeur du paramètre.

<xsl:variable name="nom" select="expression"/>
Les attributs :
Attribut Description
name="nom" affecte un nom au paramètre.
select="pattern" sélectionne un type de noeuds dans l'arborescence du document XML.

Dans le cas où la variable est déclarée dans l'élément <xsl:stylesheet>, alors elle serait valable dans l'ensemble de la feuille.

Déclarée dans une règle de modèle <xsl:template>, la variable a une portée locale.

Une variable est appelée par l'intermédiaire de son nom qui doit être précédé du signe dollar ($).

Deux éléments <xsl:variable> ne peuvent se faire mutuellement référence.

Cet élément peut être contenu dans les instructions suivantes :

Cet élément peut contenir les instructions suivantes :

Exemple : [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" 
               media-type="text/html; charset=ISO-8859-1"/>
  <xsl:template match="/">
  <xsl:variable name="num" select="1"/>
  <html>
      <head>
        <title>La logithèque</title>
      </head>
      <body>
        <h2>
        Le premier logiciel de chaque catégorie
        </h2>
        <table border="0" width="60%" class="produit">
        <tr>
          <th colspan="3">Logiciel</th>
        </tr>
        <tr>
          <th style="text-align:left">Editeur</th>
          <th>Langue</th>
          <th>OS</th>
        </tr>
        <xsl:apply-templates 
                      select="logitheque/categorie/logiciel[$num]">
          <xsl:sort select="nom"/>
        </xsl:apply-templates>
        </table>
      </body>
  </html>
  </xsl:template>
  <xsl:template match="logitheque/categorie/logiciel">
        <tr>
          <th colspan="3">
            <xsl:value-of select="../@nom"/>
          </th>
        </tr>
  <tr>
      <td colspan="3" class="c1">
          <a href="{editeur/@lien}" target="_blank" 
                style="font-size:10pt; font-weight:bold" 
                title="{prix} {prix/@monnaie}">
            <xsl:apply-templates select="nom"/>
          </a>
          - <xsl:apply-templates select="commentaire"/>
      </td>
  </tr>
  <tr>
      <td>
        <a href="{editeur/@lien}" target="_blank">
        <xsl:apply-templates select="editeur"/>
        </a>
      </td>
      <td>
        <xsl:apply-templates select="langue"/>
      </td>
      <td>
        <xsl:apply-templates select="plateforme"/>
      </td>
  </tr>
  </xsl:template>
</xsl:stylesheet>
En savoir plus :
Découvrez cet élément sur le site du W3CDécouvrez cet élément sur le site de Microsoft