Subject: Re: for-each-group group-by
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 04 Apr 2012 22:22:13 +0100
|
To group by the first alpha character in ALL cases (not just those
listed), use
group-by="replace(paperTitle, '^([P{L}]).*$', '$1')"
(not tested)
Michael Kay
Saxonica
On 04/04/2012 22:03, Craig Sampson wrote:
Hello,
I am creating an index of paper titles using xsl:for-each-group to select and group by the titles of the papers alphabetically using the first character of the title.
Eg:
<xsl:for-each-group select="//section" group-by="upper-case(substring(normalize-space(paperTitle),1,1))">
<xsl:sort select="current-grouping-key()"/>
. . .
Some of the paper titles start with double left hand quotes. Others start with a numeral. In those cases I want the group-by to use the first alpha character in the title string. I could do this if regular expressions were allowed in the group-by attribute, but they're not.
Can anyone suggest how to make this work?
Thanks,
Craig
|