L'élément <xsl:param> permet de déclarer un paramètre utilisable par une règle de modèle <xsl:template>.

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

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

Si l'attribut select est employé, alors l'élément <xsl:param> devra être un élément vide.

<xsl:param name="nom" select="expression"/>
Les attributs :
Elément Description
name="nom" affecte un nom au paramètre.
select="expression" sélectionne la valeur du paramètre dans l'arborescence d'un document XML.

Dans le cas où le paramètre est déclaré dans l'élément <xsl:stylesheet>, alors il serait valable dans l'ensemble de la feuille.

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

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

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

Les paramètres doivent se trouver au sommet de la règle de modèle <xsl:template>.

Les paramètres sont souvent utilisés comme récepteur d'une valeur provenant d'un programme externe.

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

Cet élément peut contenir les instructions suivantes :

Exemple : [voir]
<xsl:stylesheet version="1.0" 
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" encoding="ISO-8859-1" indent="no"/>
  <xsl:template match="/">
  <html>
      <body>
        <table border="1">
        <tr>
          <th>Nom</th>
          <th>Position</th>
          <th>Profondeur</th>
          <th>Données contenues</th>
        </tr>
        <xsl:for-each select="//*">
          <tr>
            <td>
              <xsl:value-of select="name()"/>
            </td>
            <td>
              <xsl:value-of select="position()"/>
            </td>
            <td>
              <xsl:call-template name="profondeur"/>
            </td>
            <td><pre>
              <xsl:value-of select="current()"/>
            </pre></td>
          </tr>
        </xsl:for-each>
        </table>
      </body>
  </html>
  </xsl:template>
  <xsl:template name="profondeur">
  <xsl:param name="noeud" select="."/>
  <xsl:value-of select="count($noeud/ancestor::node())"/>
  </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