|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Loops and variables question
Fran wrote:
> 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>
your xml buffer is not correct :)
close your ROOM tag...
<snip/>
>
> How can implement this if a variable cannot be redefined??
you can use a named template, and call it recursively like this
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="ROOMS/ROOM">
<xsl:call-template name="print">
<xsl:with-param name="max" select="@quantity"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="print">
<xsl:param name="max"/>
<xsl:param name="count">1</xsl:param>
<xsl:choose>
<xsl:when test="$count < $max">
<xsl:value-of select="$count"/><xsl:text>,</xsl:text>
<xsl:call-template name="print">
<xsl:with-param name="max" select="$max"/>
<xsl:with-param name="count" select="$count + 1"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$count = $max">
<xsl:value-of select="$count"/>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Then the ouput will be
<?xml version="1.0" encoding="UTF-8"?>
1,2,3,4,5
1,2,3
1,2,3,4,5,6,7
Fred
--
XPath free testing software : http://lantern.sourceforge.net
Frédéric Laurent http://www.opikanoba.org
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








