|
Subject: Re: [xsl] Select item from schedule based on date in XPath 1.0 From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 30 Jul 2014 16:11:33 -0000 |
On Wed, Jul 30, 2014 at 7:00 AM, Philipp Kursawe
phil.kursawe@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
> I am using XPath 1.0 so for the date comparison itself I use this trick:
> number(translate(@startTime, "-T:.Z", ""))
> to get a number representation for the startTime attibute.
Simply removing the non-digit characters will not, in general, be
correct, especially in the case when the timezone values are
different.
If you can completely ignore the timezones, this XPath expression:
/*/*[translate(substring-before(substring-after(@startTime, 'T'),
'.'), ':', '')
<
100*translate($vMyTime, ':', '')
]
[last()]
selects the item element with the wanted value of the startTime attribute.
To prove this, one can run a transformation as the following:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vMyTime" select="'11:15'"/>
<xsl:template match="/">
<xsl:copy-of select="
/*/*[translate(substring-before(substring-after(@startTime, 'T'),
'.'), ':', '')
<
100*translate($vMyTime, ':', '')
]
[last()]
"/>
</xsl:template>
</xsl:stylesheet>
When this transformation is applied on the provided XML document
(corrected to be wellformed):
<daily>
<item startTime="2014-07-26T10:00:00.000Z"/>
<item startTime="2014-07-26T11:00:00.000Z"/>
<item startTime="2014-07-26T12:00:00.000Z"/>
<item startTime="2014-07-26T13:00:00.000Z"/>
</daily>
the wanted result is produced:
<item startTime="2014-07-26T11:00:00.000Z" />
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Select item from schedule, L2L 2L emanuelallen@ | Thread | Re: [xsl] Select item from schedule, L2L 2L emanuelallen@ |
| Re: [xsl] Select item from schedule, L2L 2L emanuelallen@ | Date | Re: [xsl] Select item from schedule, L2L 2L emanuelallen@ |
| Month |