[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Loops and variables question

Subject: Re: Loops and variables question
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 27 Nov 2003 11:29:05 GMT
xsl loops
> How can implement this if a variable cannot be redefined??

It's not clear why people think that the use of variables in XSLT is any
kind of restriction, it explictly is not a restriction. there is no
computation that requires variables to be redefined.


the code I posted before had a slight typo so here it is again, tested:
This relies on your stylesheet having more nodes than the larget value
of @quantity.


<ROOMS>
 <ROOM quantity="5"/>
 <ROOM quantity="3"/>
 <ROOM quantity="7"/>
</ROOMS>


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="ROOM">
<xsl:variable name="n" select="@quantity"/>
Room: <xsl:for-each select="(document('')//node())[position()&lt;=$n]">
<xsl:value-of select="position()"/>
<xsl:if test="position()&lt;last()">, </xsl:if>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>



$ saxon room.xml room.xsl
<?xml version="1.0" encoding="utf

Room: 1, 2, 3, 4, 5

Room: 1, 2, 3

Room: 1, 2, 3, 4, 5, 6, 7


===============================================


In xslt 2 you could use the more natural construct (and no variables at
all)


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="ROOM">
Room: <xsl:value-of select="1 to @quantity">
</xsl:template>

</xsl:stylesheet>

$ saxon7 room.xml room.xsl
<?xml version="1.0" encoding="UTF-8"?>

Room: 1, 2, 3, 4, 5

Room: 1, 2, 3

Room: 1, 2, 3, 4, 5, 6, 7



David

-- 
http://www.dcarlisle.demon.co.uk/matthew

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.