site de Fabien Torre


Source de factorielle.xsl

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0">
<xsl:output method="xml" />
<!-- Template principal : appel à Factorielle avec n et 1 -->
<xsl:template match="/">
<xsl:call-template name="factorielle">
<xsl:with-param name="n" select="factorielle/@n" />
<xsl:with-param name="f" select="1" />
</xsl:call-template>
</xsl:template>
<!-- Template récursif pour calculer factorielle -->
<xsl:template name="factorielle">
<xsl:param name="n" />
<xsl:param name="f" />
<xsl:choose>
<xsl:when test="$n = 1">
<resultat>
<xsl:attribute name="value">
<xsl:value-of select="$f" />
</xsl:attribute>
</resultat>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="factorielle">
<xsl:with-param name="n" select="$n - 1" />
<xsl:with-param name="f" select="$f * $n" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Fabien Torre Valid HTML5! Valid CSS!
site de Fabien Torre, université de Lille