[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: for-loop in xslt problem

Subject: Re: for-loop in xslt problem
From: Ryan Gallagher <binerman@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 5 Apr 2003 21:54:07 -0600
xslt loop
There is an excellent example of a re-usable versatile "for-loop" emulation
template in Orielly's XSLT Def. Guide.

It came in quite handy when i wanted to allow for an integer attribute to
trigger that many copies of something to be output.

Cheers,
Ryan

Quoting Vasu Chakkera <vasucv@xxxxxxxxxxx>:

> Cool. This is interesting.. You can use recursive templates to get what you 
> want..
> for example fot the xml
> <?xml version="1.0"?>
> <example>
> 	<total>45</total>
> 	<skip>20</skip>
> </example>
> 
> If you write XSL along the lines of..
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> 	<xsl:template match="/">
> 		<xsl:call-template name="loop">
> 			<xsl:with-param name="maxcount" select="example/total"/>
> 			<xsl:with-param name="incriment-factor" select="example/skip"/>
>

 			<xsl:with-param name="initial-value" select="0"/>
> 		</xsl:call-template>
> 	</xsl:template>
> 	<xsl:template name="loop">
> 		<xsl:param name="maxcount"/>
> 		<xsl:param name="incriment-factor"/>
> 		<xsl:param name="initial-value"/>
> <!--
> This template produces the following logic
> for ($count = 0; $count<=$total; ($count = $count + $skip))
> {
> echo("Print this");
> }
> -->
> 		<xsl:if test="$initial-value &lt; $maxcount">
> 			<xsl:text>Print this</xsl:text>
> 			<xsl:call-template name="loop">
> 				<xsl:with-param name="maxcount" select="$maxcount"/>
> 				<xsl:with-param name="initial-value" 
> select="$initial-value+$incriment-factor"/>
> 				<xsl:with-param name="incriment-factor" select="$incriment-factor"/>
> 			</xsl:call-template>
> 		</xsl:if>
> 	</xsl:template>
> </xsl:stylesheet>
> 
> This produces the result:
> Print thisPrint thisPrint this
> 
> Hope this helps. Please run the XSL against the XML i have given first to 
> make sure it works as you wanted. you may then make changes to the xpath to 
> reflect your XML.
> Please reply back if anything is unclear.
> HTH
> Vasu
> 
> 
> >From: Frankie Roberto <public@xxxxxxxxxxxxxxxxxx>
> >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >To: "Xsl-List@Lists. Mulberrytech. Com" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> >Subject:  for-loop in xslt problem
> >Date: Sat, 5 Apr 2003 02:55:43 +0100
> >
> >
> >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
> >
> 
> 
> _________________________________________________________________
> Hotmail messages direct to your mobile phone http://www.msn.co.uk/mobile
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 


-- 
Ryan Gallagher (binerman)
binerman@xxxxxxxxxxxxxxxxxxxxx
The Parchive Project
http://parchive.sourceforge.net
http://sourceforge.net/projects/parchive


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.