RE: [xsl] Iterating over values in a table of data

Subject: RE: [xsl] 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: [xsl] 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.

Current Thread