Re: [xsl] Extracting the grouping from a flat structure

Subject: Re: [xsl] Extracting the grouping from a flat structure
From: Kevin Jones <kjones@xxxxxxxxxxx>
Date: Mon, 6 Dec 2004 13:47:23 +0000
On Monday 06 December 2004 00:34, Peter Wyngaard wrote:
>
> <xsl:for-each select='//TABLE[@class="results"]/TR[TH]'>
>   <header>
>    <xsl:attribute name=...>...</xsl:attribute>
>    <xsl:variable name='thisHeader'
> select='generate-id(.)'/> <xsl:for-each
> select='following-sibling::TR[$thisHeader=generate-id(pre
>ceding- sibling::TR[TH][1])]'>
>     <row>
>      ...
>     </row>
>    </xsl:for-each>
>   </header>
> </xsl:for-each>

Hi Peter,

This looks to me like a pretty standard solution to this 
problem although its clearly inefficient for larger data 
sets.

As an alternative I would be tempted to try a two pass 
approach, the first to collect the position() of all your 
headers in a variable and the second to chop and process a 
nodeset of all the rows using a recursive template and the 
position() data. This would exchange searching for nodeset 
manipulation so your milage will vary on different 
processors.

Kev.

Current Thread