Subject: Re: [xsl] Loops and variables question From: Frederic Laurent <fl@xxxxxxxxxxxxx> Date: Thu, 27 Nov 2003 13:01:19 +0100 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Loops and variables quest, David Carlisle | Thread | RE: [xsl] Loops and variables quest, Jarno . Elovirta |
RE: [xsl] SAXON and heavy xml doc, Tomas Salkauskas | Date | Re: [xsl] on-fly xml will not be tr, Vilius Jagminas |
Month |