This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Repetition without a repeated source node
- To: xsl-list at mulberrytech dot com
- Subject: Re: Repetition without a repeated source node
- From: Paul Tchistopolskii <paul at qub dot com>
- Date: Thu, 02 Mar 2000 21:27:37 -0800
- Organization: The Qub Group
- References: <NDBBKEDPBMECMILNPMMPAENFCBAA.rakesh_ajmera@intuit.com>
- Reply-To: xsl-list at mulberrytech dot com
> I have an XML document that has a number as one of its attributes. I
> would like to use that number as input into a loop and output a block of
> HTML code the specified number of times. Basically, a while loop. Is
> there any mechanism in XSL to accomplish this?
-------- test.xml
<doc ntimes='3'>
content
</doc>
-------- test.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/doc">
<xsl:call-template name="loop">
<xsl:with-param name="counter" select="@ntimes"/>
<xsl:with-param name="content_to_output" select="text()"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="loop">
<xsl:param name="counter"/>
<xsl:param name="content_to_output"/>
<xsl:if test="$counter > 0">
(<xsl:value-of select="$counter"/>)<xsl:value-of select="$content_to_output"/>
<xsl:call-template name="loop">
<xsl:with-param name="counter" select="$counter - 1"/>
<xsl:with-param name="content_to_output" select="$content_to_output"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
----- stdout
<?xml version="1.0" encoding="utf-8"?>
(3)
content
(2)
content
(1)
content
--------
Rgds.Paul.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list