I'm not sure who you're thinking of submitting the bug report to but I felt that I should mention that Altova's XMLSpy (version 2004, rel 4) yields the same results.
I don't know the answer but the fact that both products yield the same output would seem to require that we ask whether the issue is that there's a bug in xsltproc or that maybe XSLT works differently than you supposed. I suppose Altova could be using libxslt code in their product and the same bug exists in both products? Carl -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bob Stayton Sent: Saturday, July 09, 2005 1:14 AM To: [email protected] Subject: [xslt] equality expression bug? Consider this stylesheet that tests three != 0 expressions. You can run it against any XML file, as all it does it output messages to indicate expression results. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> <xsl:template match="/"> <xsl:variable name="text" select="'A'"/> <xsl:variable name="node">B</xsl:variable> <xsl:choose> <xsl:when test="$text != 0"> <xsl:message>text value A is not equal to zero</xsl:message> </xsl:when> <xsl:otherwise> <xsl:message>text value A is *not* not equal to zero!</xsl:message> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="$node != 0"> <xsl:message>node value B is not equal to zero</xsl:message> </xsl:when> <xsl:otherwise> <xsl:message>node value B is *not* not equal to zero!</xsl:message> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="string($node) != 0"> <xsl:message>node string value B is not equal to zero</xsl:message> </xsl:when> <xsl:otherwise> <xsl:message>node string value B is *not* not equal to zero!</xsl:message> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> When I run it with xsltproc from libxslt version 10114CVS1011 on Windows XP, I get: text value A is not equal to zero node value B is *not* not equal to zero! node string value B is not equal to zero Does anyone else think the middle test produces the wrong result? My understanding is that in equality expressions, if one operand is a number then the other is converted to a number. Converting a node means first converting it to a string and then converting that string to a number. So that node conversion should yield NaN, which should not be equal to zero. Am I missing something, or should I file a bug report? Bob Stayton Sagehill Enterprises DocBook Consulting [EMAIL PROTECTED] _______________________________________________ xslt mailing list, project page http://xmlsoft.org/XSLT/ [email protected] http://mail.gnome.org/mailman/listinfo/xslt _______________________________________________ xslt mailing list, project page http://xmlsoft.org/XSLT/ [email protected] http://mail.gnome.org/mailman/listinfo/xslt
