Subject: Re: [xsl] XPath expression to extract the hour offset from strings that express time offset from UTC? From: "Terry Badger terry_badger@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 14 Dec 2022 00:59:51 -0000 |
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)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath expression to extra, Dimitre Novatchev dn | Thread | Re: [xsl] XPath expression to extra, Dimitre Novatchev dn |
Re: [xsl] XPath expression to extra, Dimitre Novatchev dn | Date | Re: [xsl] XPath expression to extra, Dimitre Novatchev dn |
Month |