xsl-list
[Top] [All Lists]

Re: [xsl] IGNORE CASE IN XSLT match

2008-10-01 09:02:47

  <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. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--