This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How to get a case insensetive grouping ??
- From: Peter Davis <pdavis152 at attbi dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 27 Feb 2002 17:45:22 -0800
- Subject: Re: [xsl] How to get a case insensetive grouping ??
- References: <NDBBKBGAFKNAJDBIKBDBKEHJDNAA.michael@socialchange.net.au>
- Reply-to: xsl-list at lists dot mulberrytech dot com
On Wednesday 27 February 2002 16:27, Michael Bauerfeld wrote:
> Hi,
> I'm using the Muenchian Method to group elements of a xml file. Currently
> my xsl produces separate groups for identical words with different spelling
> (upper-/lower-case). Is there an easy way to create an 'overall' group for
> such elements (e.g. "NAME" and "name")? I've tried translate() but that
> seems not to work.
>
> Thanks,
> -Michael
>
>
> XSL sample ....
>
> <xsl:key name="elementToGroup_" match="level2/level3"
> use="translate(elementToGroup,'abcdef...','ABCDEF...')" />
> <xsl:output method="html"/>
>
> <xsl:template match="level1">
> <xsl:apply-templates select="level2/level3[generate-id(.) =
> generate-id(key(elementToGroup_', elementToGroup)[1])]" />
First of all, you're missing a "'" (single-quote). Besides that, I think you
would want to use:
key('elementToGroup_', translate(elementToGroup, 'abcd...', 'ABCD...'))[1]
That way the same upper-case characters are used both in the key's value and
in the argument to the key() function.
>
> .....
>
> XML sample ....
> <level1>
> <level2>
> <level3>
> <elementToGroup>NAME</elementToGroup>
> <element>xxx</element>
> </level3>
> </level2>
> <level2>
> <level3>
> <elementToGroup>name</elementToGroup>
> <element>yy</element>
> </level3>
> </level2>
> </level1>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
Peter Davis
Nullum magnum ingenium sine mixtura dementiae fuit.
[There is no great genius without some touch of madness.]
-- Seneca
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list