Subject: Re: IGNORE CASE IN XSLT match
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 1 Oct 2008 14:15:11 +0100
|
> It may be better to consider a two stage process, first normalize, then
> transform.
>
> <xsl:variable name="lc">
> <xsl:apply-templates mode="lc"/>
> </xsl:variable>
>
> <xsl:template match="*" mode="lc">
> <xsl:element name="{lower-case(local-name())}
> namespace="{namespace-uri(.)}">
> <xsl:apply-templates select="@*,node()"/>
(missing the mode there: <xsl:apply-templates select="@*,node()" mode="lc"/>)
The other way of lowercasing everything (if you are using Java) is to
use an XMLFilter which sits between the XMLReader and the
TransformerHandler.
Using a two-passes in the XSLT is much easier, while the XMLFilter
approach would be preferable where performance is an issue.
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
|