[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: testing dates
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: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|