Subject: RE: Iterating over values in a table of data
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 7 Jun 2006 10:28:16 +0100
|
An approach I have used successfully with this kind of problem is to use a
two-phase transformation in which phase 1 converts your input document to a
stylesheet, and phase 2 executes the stylesheet.
It's not the only approach - an interpretive approach also works - but it
may be the cleanest.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Neil Crofts [mailto:neil.crofts@xxxxxxxxx]
> Sent: 07 June 2006 10:11
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Iterating over values in a table of data
>
> I'm trying to transform some XML which is supposed to act as
> an iterator/repeat statement without much success at the
> moment. I was wondering if anyone had some advice about the
> best way to approach this sort of problem. For example, my
> source XML looks a bit like the
> following:
>
> <input>
> <!-- This is a table of lookup values. -->
> <data>
> <item>
> <value>one</value>
> </item>
> <item>
> <value>two</value>
> </item>
> <item>
> <value>three</value>
> </item>
> </data>
> <!-- This node needs to be repeatedly transformed for
> each input data item -->
> <repeat>
> Item <value-of name="value"/> is in position
> <position-of name="value"/>
> </repeat>
> </input>
>
> The desired output is of the following format:
>
> <output>
> <item>Item one is in position 1</item>
> <item>Item two is in position 2</item>
> <item>Item three is in position 3</item> </output>
>
> The intention is that when a <repeat> node is transformed it
> will look up the value of the next item in the data table and
> output its value and also its position in the data table.
> This will need to be repeated for each data item.
>
> I don't have a restriction on me regarding the version of
> XSLT I can use, so an XSLT 2.0 specific would be ok, although
> I would prefer a solution that does not use any processor
> specific extensions.
>
> Has anyone got any advice on or solutions for this class of
> problem? Thanks.
|