RE: [xsl] XSLT Problem - Case Conversion

Subject: RE: [xsl] XSLT Problem - Case Conversion
From: Américo Albuquerque <melinor@xxxxxxxx>
Date: Mon, 6 Oct 2003 12:25:07 +0100
Hi

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Saurabh Sinha
> Sent: Monday, October 06, 2003 12:00 PM
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] XSLT Problem - Case Conversion
> 
> 
> Hi,
> 
> Is there any built-in function like toupper() or
> tolower() in XSL so that we can convert the text -
> such as upper to lower or vice versa? e.g. I want to
> see 'STATUS' or 'STATUSCODE' as 'Status' or
> 'Statuscode.
> 

Use translate
Example:
<xsl:variable name="text" select="'STATUS'"/>
<xsl:value-of
select="translate($text,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqr
stuvwxyz')"/>

This will change 'STATUS' into 'status'

To change 'status' to 'STATUS' just switch the 2º argument with the 3º
<xsl:variable name="text" select="'status'"/>
<xsl:value-of
select="translate($text,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQR
STUVWXYZ')"/>

To get your output, i. e., to change 'STATUS' into 'Status' you'll need
to use both transformations

<xsl:variable name="text" select="'STATUS'"/>
<xsl:value-of
select="concat(translate(substring($text,1,1),'abcdefghijklmnopqrstuvwxy
z','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),translate(substring($text,2),'ABCDEFGHI
JKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'))"/>

Regards,
Americo Albuquerque


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread