This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: implement for loop with XSLT


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]