xsl-list
[Top] [All Lists]

RE: testing dates

2004-09-08 02:38:26
In XPath 1.0 the operands of "<" are converted to numbers. If that fails,
you get NaN, and NaN compared with anything is false.

This changes in XPath 2.0: an improvement, though also, sadly, a source of
incompatibility.

The solution to your problem is to strip the hyphens using translate().

Michael Kay
 

-----Original Message-----
From: Peter Flynn [mailto:pflynn(_at_)ucc(_dot_)ie] 
Sent: 08 September 2004 10:23
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] testing dates

If $isodate contains "2004-06-27" and a CDATA attribute
@start-date contains "2004-09-05", what should be the result of:

<xsl:if test="$isodate &lt; foo/@start-date">

It always evaluates to False under Saxon 6.5.2 (ie if I
use &gt; instead of &lt; I get the same result: False). 

Is there something about comparing strings containing digits 
that I have
missed? Are they being evaluated as expressions 
(eg 2004 minus 6 minus 27)?

///Peter



--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--





<Prev in Thread] Current Thread [Next in Thread>