RE: [xsl] implement for loop with XSLT

Subject: RE: [xsl] implement for loop with XSLT
From: "Michael Kay" <mhkay@xxxxxxxxxxxx>
Date: Sun, 18 Mar 2001 22:08:07 -0000
> I came up with the enclosed code to grab the value of an <n> element
> and generate a list of integers and their squares between 1 and n:
>
>    1 1
>    2 4
>    3 9
>    ...
>    8 64
>    9 81
>    10 100
>
> I am a bit stunned at how intricate this code looks. Is there
> a more direct way to accomplish this?

No, the way you have done it is the correct way. It's rather verbose, but
it's conceptually simple, and by writing it you have learnt a powerful and
extensible technique.

> If I am stuck with this recursive solution, is there a way
> to write a generic "for" template but pass in a "body" that
> needs to be evalutate? For example pass a string "$i*$i*$i"
> to evaluate cubes).

You're really asking here for first-class functions or lambda expressions,
something that is the subject of some of the heavy theoretical discussion on
this list that you're probably ignoring and dismissing as irrelevant.

Meanwhile you could play with the evaluate() extension function available in
Saxon, Xalan, etc.

Mike Kay
Software AG


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


Current Thread