"Mark Williams" <mark(_at_)skwirel(_dot_)com> wrote in message
news:004401c3e057$f6095850$0200a8c0(_at_)skwirel1(_dot_)(_dot_)(_dot_)
Hi,
Is there a way of terminating a for-each loop after it has reached a
specified number of iterations.
Use the "iter" template from FXSL. You don't need to worry whether you have
some big quantity of nodes.
Here's a small example:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:myMultiplyby3="f:myMultiplyby3"
exclude-result-prefixes="xsl myMultiplyby3">
<xsl:import href="itersimple.xsl"/>
<xsl:output omit-xml-declaration="yes"/>
<myMultiplyby3:myMultiplyby3/>
<xsl:template match="/">
<xsl:variable name="vMultBy3"
select="document('')/*/myMultiplyby3:*[1]"/>
<xsl:call-template name="iter">
<xsl:with-param name="pTimes" select="4"/>
<xsl:with-param name="pFun" select="$vMultBy3"/>
<xsl:with-param name="pX" select="1"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="myMultiplyby3:*">
<xsl:param name="arg1"/>
<xsl:value-of select="3 * $arg1"/>
</xsl:template>
</xsl:stylesheet>
This (when applied on arbitrary source.xml) will multiply a number (3 in ths
case) 3 times with itself.
Cheers,
Dimitre Novatchev.
FXSL developer
http://fxsl.sourceforge.net/ -- the home of FXSL
Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list