Re: [xsl] Looping using XSL

Subject: Re: [xsl] Looping using XSL
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 02 Oct 2002 12:11:15 -0400
Josh,

At 02:21 AM 10/2/2002, you wrote:
Doesnt <xsl:for-each select="//*[position() &lt;= rating]">
iterate through all the child elements of the context node ., in this case "mood"..
so essentially since it has only one child element( "rating" ), It should iterate only once irrespective of the condition *[position() &lt;= rating]">
so you xsl should produce only one line.
<div class="moodbar"><img src="layout/global/pics/mood-red.gif" alt="" /></div>
Vasu

That's what I've just found...though I appreciated the idea :-)

I'd like to see your XPath. The XPath "//*[position() &lt;= 17]" will return a node set with 17 members, or with as many members as your document has nodes, whichever is less.


Sorry if the words 'looping' and 'iterate' have confused the issue but I'm not sure what else to call it.

Oh, it's me who's confusing the issue. I merely quibble since it's not "looping" or even (in the strictest sense) iterating (though that's what the spec calls "for-each"), since like everything in XSLT what you are really doing is specifying the output, and it's up to the processor to decide (for example) what order to do things in, or whether to do them all together or whatever, as long as the output tree comes out correctly.


But it has the same effect.

I guess what's needed is some way of testing against the number in the rating node and write out the html line until the rating is equalled.

That's still procedural thinking (and will work fine if you adopt a recursive solution, the true way to do "loops" in XSLT). This way of approaching it is to say "I don't care about testing against 'rating', just give me number(rating) nodes and I'll do x for each one".


Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


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



Current Thread