Thanks Dimitre, that works! Nice trick with the "last()"
On Wed, Jul 30, 2014 at 6:12 PM, Dimitre Novatchev
dnovatchev(_at_)gmail(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
On Wed, Jul 30, 2014 at 7:00 AM, Philipp Kursawe
phil(_dot_)kursawe(_at_)gmail(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>
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.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--