Subject: Re: [xsl] IGNORE CASE IN XSLT match From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 1 Oct 2008 14:02:17 +0100 |
> <xsl:template match="*[ lower-case( local-name() ) = 'mix']"> > <xsl:template match="Mix|mix"> etc while you can do that it's often not really convenient as you have to do the same more or less everywhere <xsl:template match="*[ lower-case( local-name() ) = 'mix']"> <xsl:value-of select="@*[ lower-case( local-name() ) = 'foo']"> .. etc 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()"/> </xsl:element> </xsl:template> <xsl:template match="@*" mode="lc"> <xsl:attribute name="{lower-case(local-name())} namespace="{namespace-uri(.)}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:template> then <xsl:template match="/"> <xsl:apply-templates select="$c/*"/> </xsl:template> then the rest of your code. Then in your main body of code you can assume lower case names an duse normal xpath syntax <xsl:template match="min"> <xsl:value-of select="@foo"> .. David ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] IGNORE CASE IN XSLT match, Ruud Grosmann | Thread | Re: [xsl] IGNORE CASE IN XSLT match, Andrew Welch |
Re: [xsl] IGNORE CASE IN XSLT match, Ruud Grosmann | Date | Re: [xsl] IGNORE CASE IN XSLT match, Andrew Welch |
Month |