Subject: Re: 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.
|