Re: Repetition without a repeated source node

Subject: Re: Repetition without a repeated source node
From: Paul Tchistopolskii <paul@xxxxxxx>
Date: Thu, 02 Mar 2000 21:27:37 -0800

> 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 &gt; 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


Current Thread