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

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

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

<xsl:with-param select="expression"/>

Cet élément ne peut apparaître que dans les instructions <xsl:call-template> ou <xsl:apply-templates>.

<xsl:call-template select="expression">
   <xsl:with-param name="nom">
      Valeur
   </xsl:with-param>
</xsl:call-template>
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.

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

Cet élément ne peut être contenu que par les instructions <xsl:call-template> et <xsl:apply-templates>.

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:variable name="incrementations" select="100"/>

  <xsl:template match="/">
  <html>
      <body>
        <table>
        <xsl:call-template name="annee"/>
        </table>
      </body>
  </html>
  </xsl:template>
  <xsl:template name="annee">
  <xsl:param name="i">0</xsl:param>
  <xsl:param name="bissextile">2000</xsl:param>

  <xsl:if test="$bissextile mod 4 = 0 
                     and not($bissextile mod 100 = 0) 
                     or $bissextile mod 400 = 0">
      <tr>
        <td>L'année "</td>
        <td>
        <xsl:value-of select="$bissextile"/>
        </td>
        <td>" est une année bissextile</td>
      </tr>
      <xsl:text>   </xsl:text>
  </xsl:if>
  <xsl:if test="$i &lt;= $incrementations">
      <xsl:call-template name="annee">
        <xsl:with-param name="i" select="$i + 1"/>
        <xsl:with-param name="bissextile" select="$bissextile + 4"/>
      </xsl:call-template>
  </xsl:if>
  </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