Subject: RE: Testing for Last Group in For-Each-Group
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 18 Dec 2007 10:14:52 -0000
|
The value of last() is an integer greater than zero, and its effective
boolean value is therefore always true.
You want the old favourite: if (position() = last()).
Alternatively, given the way you are doing the grouping, you could do
if (not(following-sibling::br))
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Jeff Sese [mailto:jsese@xxxxxxxxxxxx]
> Sent: 18 December 2007 08:24
> To: XSL List List
> Subject: Testing for Last Group in For-Each-Group
>
> Hi,
>
> I have a for-each-group instruction, how can i test if the
> group i'm processing is the last one?
>
> <xsl:for-each-group select="node()" group-starting-with="br">
> <group last="{if (last()) the 'yes' else 'no'}">
> <xsl:copy-of select="current-group()"/>
> </group>
> </xsl:for-each-group>
>
> I keep on getting 'yes'...
>
> TIA
> -- Jeff
|