|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XPath expression to extract the hour offset from
How about this
B <xsl:value-of select="substring(., 4, 2)"/>
B <xsl:value-of select="translate(substring(., 6, 1), '1234567890:(',
'1234567890')"/>
TerryBadger
On Tuesday, December 13, 2022 at 10:22:09 AM EST, Dimitre Novatchev
dnovatchev@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
Here is a pure XPath 1.0 solution:
substring(substring-before(concat(substring-before(concat($t, ":"), ":"),
"("), "("), 4)
And this expression:
for $t in ("UTC+5", "UTC+1(+2DT)", "UTC-11", "UTC+4:30",
"UTC+9:30(+10:30DT)")
B return
B B substring(substring-before(concat(substring-before(concat($t, ":"), ":"),
"("), "("), 4)
evaluates exactly to the wanted result-sequence:
+5
+1
-11
+4
+9
https://github.com/dnovatchev/FXSL-XSLT2/blob/master/ExtractingHours.jpg
Thanks,
Dimitre
On Tue, Dec 13, 2022 at 5:49 AM Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi Folks,
>
> I have strings that express time offset from UTC. Here are representative
examples:
>
> UTC+5
> UTC+1(+2DT)
> UTC-11
> UTC+4:30
> UTC+9:30(+10:30DT)
>
> In areas where daylight savings time is observed, the daylight savings time
is the part in parentheses.
>
> Some offsets have both an hour and minute. The minute portion is after the
colon.
>
> I need to extract the hour offset. So for the above examples, I need to
extract:
>
> +5
> +1
> -11
> +4
> +9
>
> This XPath expression seems to do the job:
>
> let $time := "UTC+9:30(+10:30DT)" return
> B B if (contains($time,'(')) then
> B B B B let $part := substring-after(substring-before($time,'('),'UTC')
return
> B B B B B B if (contains($part,':')) then
> B B B B B B B B substring-before($part,':')
> B B B B B B else
> B B B B B B B B $part
> B B else
> B B B B let $part := substring-after($time,'UTC') return
> B B B B B B if (contains($part,':')) then
> B B B B B B B B substring-before($part,':')
> B B B B B B else
> B B B B B B B B $part
>
> Is there a better (simpler, shorter) XPath expression for doing this?
>
> /Roger
>
>
>
B B XSL-List info and archive
EasyUnsubscribe (by email)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








