XSLT的精髓是递归。
<xsl:template name="loopI"><xsl:param name="i" select="1"/><xsl:call-template name="loopJ"><xsl:with-param name="j" select="1"/></xsl:call-template><!-- enter next i if i<=10 --><xsl:if test="$i < 11>
<xsl:call-template name="loopI"><xsl:with-param name="i" select="$i + 1"/></xsl:call-template></xsl:if></xsl:template><xsl:template name="loopJ"><xsl:param name="j" select="1"/><!-- do you job here --><!-- enter next i if i<=5--><xsl:if test="$j < 6
<xsl:call-template name="loopJ"><xsl:with-param name="j" select="$j + 1"/></xsl:call-template></xsl:if></xsl:template>