This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Capitalizing only the first letter of each word
- From: Jeff Beadle <Jbeadle at manh dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 21 Mar 2002 08:32:56 -0500
- Subject: RE: [xsl] Capitalizing only the first letter of each word
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hey Katie,
Here's an approach that works well for ANSI characters.
I'm not totally sure how it would behave with Unicode data, I do know it
won't die--it just may not case some of the non-english characters
correctly. I tested it out with some greek sentences, with what little I
know about greek characters, and it seems to be behaving correctly.
However, be wary, because I believe that some languages have characters that
have no equivalent capitalized form ... in which case, I suspect this
function will still work--it should just no-op the toUpperCase call to
return the given character as is.
Anyway, enough of my jibber-jabber, here's the extension function:
<msxsl:script implements-prefix="string" language="JavaScript">
//<![CDATA[
function toAllWordsProperCase(s){
if(void(0)==s||null==s) return "";
if("object"==typeof(s)) s = s.nextNode.text;
if(void(0)==s||""==s) return "";
var result = "";
var words = s.split(" ");
var count = words.length;
for(var i=0;i<count;i++) {
result += parse(words[i]) + " ";
}
result += parse(words[i]);
return result;
////////////////////////////////////////
//internal method
function parse(s){
if(void(0)==s||""==s) return "";
if(isNaN(parseInt(s))) {
return s.charAt(0).toUpperCase() + s.substr(1).toLowerCase();
}
else {
return s;
}
}
}
//]]>
</msxsl:script>
hope this helps ... I know I enjoyed the exercise.
-Jeff
-----Original Message-----
From: Katie McNally [mailto:kmcnally9@hotmail.com]
Sent: Wednesday, March 20, 2002 8:43 PM
To: xsl-list@lists.mulberrytech.com
Subject: [xsl] Capitalizing only the first letter of each word
I am getting back my data in ALL-CAPS. Is there any way to display the
first letter of each word in uppercase, but the rest of each word in
lowercase?
example XML:
<Tg Nm="Name">JOHN LEWIS</Fld>
<Tg Nm="Street">8780 MAIN ST</Fld>
<Tg Nm="City">COLORADO SPRINGS</Fld>
<Tg Nm="State">CO</Fld>
I want to display:
John Lewis
8780 Main St
Colorado Springs
CO
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list