Using FXSL one would write:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:myPrint="f:myPrint"
<xsl:import href="iter.xsl"/>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="vfPrint" select="document('')/*/myPrint:*[1]"/>
<xsl:variable name="vrtfIterResult">
<xsl:call-template name="scanIter">
<xsl:with-param name="arg1"
select="ceiling(/*/total div /*/skip)"/>
<xsl:with-param name="arg2" select="$vfPrint"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$vrtfIterResult"/>
</xsl:template>
<myPrint:myPrint/>
<xsl:template match="myPrint:*">
Print this!
</xsl:template>
</xsl:stylesheet>
When this transformation is performed on your source.xml:
<t>
<total>45</total>
<skip>20</skip>
</t>
the wanted result is produced:
Print this!
Print this!
Print this!
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
"Frankie Roberto" <public(_at_)frankieroberto(_dot_)com> wrote in message
news:ILEMJNHHHLEKFFNFNLDMOEFJCHAA(_dot_)public(_at_)frankieroberto(_dot_)com(_dot_)(_dot_)(_dot_)
Hi,
I'm having problems trying to implement a 'for' loop in xslt - I haven't
seen any syntax so far that can cope with this (and my book doesn't go
into
it).
To explain, my XML looks something like:
<total>45</total>
<skip>20</skip>
The PHP script I am converting would do something like this:
for ($count = 0; $count<=$total; ($count = $count + $skip)) {
echo("Print this");
}
..looping $total/$skip times plus once for the remainder.
But I can't see any way of doing this in xslt so far...
Ta.
Frankie
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list