RE: [xsl] Loops and variables question

Subject: RE: [xsl] Loops and variables question
From: Jarno.Elovirta@xxxxxxxxx
Date: Thu, 27 Nov 2003 14:14:53 +0200
Hi,

> I want to build a list with the quantity attribute of the all 
> ROOMS nodes.
> I have this XML:
> 
> <ROOMS>
>  <ROOM quantity="5">
>  <ROOM quantity="3">
>  <ROOM quantity="7">
> </ROOMS>
> 
> My desired output is:
> 1,2,3,4,5,1,2,3,1,2,3,4,5,6,7
> 
> I tryed with an auxiliary variable <xsl:variable 
> name="num"...>but I can
> increment this variable for each node.

No you can't, variables are immutable in XSLT once bound.

  <xsl:output method="text"/>
  <xsl:strip-space elements="*"/>
  <xsl:template match="ROOM" name="counter">
    <xsl:param name="i" select="1"/>
    <xsl:if test="$i &lt;= @quantity">
      <xsl:value-of select="$i"/>
      <xsl:if test="not(not(following-sibling::ROOM) and $i = @quantity)">,</xsl:if>
      <xsl:call-template name="counter">
        <xsl:with-param name="i" select="$i + 1"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>

Cheers,

Jarno - Velvet Acid Christ: Angels In Bondage (B-Side / mp3 128 Mix / by Angels In Bondage)

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


Current Thread