Subject: Re: [xsl] for-each-group grouping accented versions of letters together From: Graydon <graydon@xxxxxxxxx> Date: Sat, 21 Apr 2012 10:36:11 -0400 |
On Sat, Apr 21, 2012 at 03:02:22AM +0200, Imsieke, Gerrit, le-tex scripsit: > You can strip the accents by unicode decomposition and then removing > the diacritical marks: > > <xsl:for-each-group select="index-0" > group-by="substring( > upper-case( > replace( > normalize-unicode(heading, 'NFKD'), > '[̀-ͯ]', > '' > ) > ), 1, 1 > )"> > <xsl:sort select="current-grouping-key()"/> Thank you! I had tried decomposing, using replace with \p{Lm} and then recomposing with NFKC, and that didn't work, but it was also fairly late on Friday afternoon. > When writing the group (= starting letter) to an output file further > down in you template, you should sort it according to the > upper-case(b&) part as first sort key, then according to the actual > heading as a second (tie-breaker) sort key. > > So itbs best to make a function (call it, e.g., my:sortkey) out of > upper-case(b&). Yes. > In that function, you can also do other useful stuff, such as > eliminating stop words or replacing all numbers with a zero, so that > everything that starts with a number will be in the same group. Fortunately these are very uncomplicated headings, so no stop words, but the point about numbers is very well taken. Thanks! Graydon
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] for-each-group grouping a, Imsieke, Gerrit, le- | Thread | Re: [xsl] for-each-group grouping a, Michael Kay |
Re: [xsl] Output < and > in the att, Martin Honnen | Date | [xsl] n-queens?, Michael Hopwood |
Month |