RE: [xsl] Testing for Last Group in For-Each-Group

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

Current Thread