From: Wendell Piez <wapiez@mulberrytech.com>
Reply-To: xsl-list@lists.mulberrytech.com
To: xsl-list@lists.mulberrytech.com
Subject: Re: [xsl] Looping using XSL
Date: Wed, 02 Oct 2002 00:33:36 -0400
Josh,
This is something shameful, but it works:
<xsl:template match="mood">
<xsl:for-each select="//*[position() <= rating]">
<div class="moodbar">
<img src="layout/global/pics/mood-red.gif" alt="" />
</div>
</xsl:for-each>
</xsl:template>
When this was first introduced a couple of years back, there was a
discussion of how best to get a large enough set of nodes (the critical bit
to avoid having this trick be painfully expensive ... *at least* bind that
//* to a variable to avoid traversing it all the time):
<xsl:variable name="plentynodes" select="//*"/>
<xsl:for-each select="$plentynodes[position() <= rating]">...
Note: it is *not* a loop, and is only iteration in some particular sense.
Enjoy,
Wendell
At 11:05 PM 10/1/2002, you wrote:
I am trying to use a number in an xml file to define the number of times
an image gets placed on the page. As the number appears only once and
there are no nodes to count or group I'm a little bit stuck.
The XML looks like this:
<mood>
<rating>5</rating>
</mood>
In this case I want to put five iterations of the image on screen like
this:
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt=""
/></div>
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt=""
/></div>
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt=""
/></div>
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt=""
/></div>
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt=""
/></div>
Is there a way of doing this so if the number is changed (with a max of 17
possible) the number of images will change?
___&&__&_&___&_&__&&&__&_&__&__&&____&&_&___&__&_&&_____&__&__&&_____&_&&_
"Thus I make my own use of the telegraph, without consulting
the directors, like the sparrows, which I perceive use it
extensively for a perch." -- Thoreau
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list