Subject: [xsl] for-each-group grouping accented versions of letters together From: Graydon <graydon@xxxxxxxxx> Date: Fri, 20 Apr 2012 20:03:55 -0400 |
So I've got an XML index file, which is too large for some downstream processing to be entirely pleased with. The requirement is to split the file up, grouping index entries (index-0 elements; the index element is the overall container element) by the first character of their child heading element. Using XSLT 2.0, this is pretty easy: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet exclude-result-prefixes="xs xd" version="2.0" xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/wkna-shared-cms/index"> <xsl:for-each-group group-by="substring(heading,1,1)" select="index-0"> <xsl:sort select="./heading"/> <xsl:result-document href="eitaindex+Topical_Index_{current-grouping-key()}.xml"> <wkna-shared-cms> <index area="{/wkna-shared-cms/index/@area}" xml:lang="{/wkna-shared-cms/index/@xml:lang}"> <num cite="Topical Index {current-grouping-key()}"> <xsl:sequence select="current-grouping-key()"/> </num> <xsl:copy-of select="/wkna-shared-cms/index/index-metadata"/> <xsl:copy-of select="current-group()"/> </index> </wkna-shared-cms> </xsl:result-document> </xsl:for-each-group> </xsl:template> </xsl:stylesheet> The problem is that some of the initial characters of the headings have accents, and it's desired that the accented characters and the unaccented characters group together, so that E and I and J, etc. all group together in a group with a current-grouping-key() of "E". I can imagine doing this in a painful way with conditional statements and an exhaustive list of characters, but I'm hoping someone can tell me there's a better way. Thanks! -- Graydon
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] curly braces in attribute, Jakub Malý | Thread | Re: [xsl] for-each-group grouping a, Imsieke, Gerrit, le- |
Re: [xsl] curly braces in attribute, Mansour Al Akeel | Date | Re: [xsl] for-each-group grouping a, Imsieke, Gerrit, le- |
Month |