Re: [xsl] grouping across a collection()

Subject: Re: [xsl] grouping across a collection()
From: James Cummings <james@xxxxxxxxxxxxxxxxx>
Date: Mon, 20 Dec 2010 16:26:22 +0000
On Mon, Dec 20, 2010 at 16:10, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> On 20/12/2010 15:06, James Cummings wrote:
>>
>> Hi there,
>>
>> I have a number of files with tei:l elements in them. B So I create a
>> collection:
>> <xsl:variable name="docs" select="collection($path)"/>
>> and then want to iterate over the collection grouping all first lines
>> together, all second lines together, etc.
>
> Something like this:
>
> <xsl:for-each-group select="$docs//tei:l" group-by="f:position()">
> ...
> </xsl:for-each-group>
>
> <xsl:function name="f:position" as="xs:integer">
> B <xsl:param name="node" as="node()"/>
> B <xsl:number select="$node" level="any"/>
> </xsl:function>

Oh, that seems to work!  So instead of grouping by position() which
always ends up being the same, this calls a function which gets a
better xsl:number using @level='any'.

Thanks!

-James

Current Thread