This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: loop?
- To: <xsl-list at mulberrytech dot com>
- Subject: RE: loop?
- From: "John Power" <john dot power at net800 dot co dot uk>
- Date: Mon, 27 Nov 2000 10:41:09 -0000
- Reply-To: xsl-list at mulberrytech dot com
Laurent,
When you want to loop, make a template like this:
<xsl:template name="loopNumber">
<xsl:param name="inc" select="0"/>
<xsl:param name="maxValue" select="10"/>
<xsl:if test="$inc < $maxValue">
...some processing instructions...
<xsl:call-template name="loopNumber">
<xsl:with-param name="inc" select="$inc + 1"/>
<xsl:with-param name="maxValue" select="$maxValue"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
This mimics the usual incremental loops in other programming languages(eg
'for ($inc=0; $inc<maxValue; $inc++)...' etc). I used a value of "10" for
'$maxValue' but you can change the value when you are calling the template
by giving it a new value with 'xsl:with-param'. Eg, when calling
'loopNumber' in the template matching 'some_element':
<xsl:template match="some_element">
<xsl:call-template name="loopNumber">
<xsl:with-param name="maxValue" select="20"/>
</xsl:call-template>
</xsl:template>
Hope that helps
John Power
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list