Subject: RE: 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: 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
|