This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Upper-casing the first character of a string -- Am I missing some thing?


> I need to upper-case the first character of a string contained in my 
> input XML prior to output.  I was wondering if there was a better way, 
> this seems a bit clunky:
> 
> <xsl:value-of select="translate(substring(@name, 1, 1), 
> 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
> <xsl:value-of select="substring(@name, 2, string-length(@name) - 1)" />

I would say: if you don't want to use proprietary extensions - that's it!
Two points:
 - you may use one xsl:value statement and connect the strings by concat
 - you can omit the 3rd parameter of substring 

Thus you get
<xsl:value-of select="concat(translate(substring(@name, 1, 1),    
                                       'abcdefghijklmnopqrstuvwxyz', 
                                       'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
                             substring(@name, 2))" />

Is that less clunky?
... whatever that means - couldn't find it in my Muret-Sanders dictionary ;-)

Cheers,
Oliver


/-------------------------------------------------------------------\
|  ob|do        Dipl.Inf. Oliver Becker                             |
|  --+--        E-Mail: obecker@informatik.hu-berlin.de             |
|  op|qo        WWW:    http://www.informatik.hu-berlin.de/~obecker |
\-------------------------------------------------------------------/


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]