|
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 |