This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Repetition without a repeated source node




> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]