xsl-list
[Top] [All Lists]

Re: for-eaching for specified number of times

2004-01-21 22:55:28

"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