Subject: RE: [xsl] testing dates From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 8 Sep 2004 10:38:26 +0100 |
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@xxxxxx] > Sent: 08 September 2004 10:23 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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 < foo/@start-date"> > > It always evaluates to False under Saxon 6.5.2 (ie if I > use > instead of < 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] testing dates, Peter Flynn | Thread | [xsl] Parent, Sven Waibel |
Re: [xsl] testing dates, David Carlisle | Date | Re: [xsl] testing dates, Peter Flynn |
Month |