Subject: Re: [xsl] Got a slick XPath expression to convert NEW YORK to New_York? From: "Adam Retter adam.retter@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 20 Dec 2023 21:57:42 -0000 |
If only XPath supported the the `\U` and `\L` operators for the replacement pattern in fn:replace, then I think we could likely have done it in a single regular expression... On Wed, 20 Dec 2023 at 22:55, Adam Retter <adam.retter@xxxxxxxxxxxxxx> wrote: > > I am not sure this is "slick" but I think its interesting: > > fn:string-join( > for $word in tokenize("NEW YORK") > let $lower-codepoints := fn:string-to-codepoints(fn:lower-case($word)) > let $capitalised-codepoints := (fn:head($lower-codepoints) - 32, > fn:tail($lower-codepoints)) > return > fn:codepoints-to-string($capitalised-codepoints) > , "_") > > You could make it more succinct of course, but then I think it looses > its readability! > > On Wed, 20 Dec 2023 at 19:27, Roger L Costello costello@xxxxxxxxx > <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > > > Hi Folks, > > > > I need to convert multi-word names that are space-separated and uppercase to names that are underscore-separated, first letter of each word uppercase and remaining letters of the word lowercase. > > > > Example: NEW YORK --> New_York > > > > Example: SIMULATION INDICATOR --> Simulation_Indicator > > > > Do you have a slick XPath expression that does this transformation? > > > > /Roger > > > > > > > -- > Adam Retter > > skype: adam.retter > tweet: adamretter > http://www.adamretter.org.uk -- Adam Retter skype: adam.retter tweet: adamretter http://www.adamretter.org.uk
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Got a slick XPath express, Adam Retter adam.ret | Thread | Re: [xsl] Got a slick XPath express, Liam R. E. Quin liam |
Re: [xsl] Got a slick XPath express, Adam Retter adam.ret | Date | Re: [xsl] Got a slick XPath express, Liam R. E. Quin liam |
Month |