[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] xpath mixed type equality expressions
- From: Daniel Veillard <veillard redhat com>
- To: Matthias Clasen <maclas gmx de>
- Cc: xml gnome org
- Subject: Re: [xml] xpath mixed type equality expressions
- Date: Tue, 11 Jun 2002 12:31:07 -0400
On Mon, Jun 10, 2002 at 10:39:24PM +0200, Matthias Clasen wrote:
>
> I have a little problem with the xsl docbook stylesheets, which don't
> behave as expected with xsltproc. The problem can be condensed to the
> following:
>
> <xsl:template name="test" match="*">
> <xsl:variable name="value">1.0</xsl:variable>
> <xsl:choose>
> <xsl:when test="$value != 1.0">
> <xsl:message>UNEQUAL</xsl:message>
> </xsl:when>
> <xsl:otherwise>
> <xsl:message>EQUAL</xsl:message>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> This will print UNEQUAL when run trough xsltproc, although I believe
> that the XPath spec (section 3.4) specifies that it should print EQUAL,
> since the test attribute is an EqualityExpression with a node-set and a
> number as operands. Such an expression shall evaluate to true if any
> node x in the node-set yields the given number when fed through
> number(string-value(x)).
>
> libxml does't really implement this, but rather converts the number to a
> string (which converts 1.0 into "1") and then compares the
> string-value(x) with the resulting string (in xmlXPathEqualNodeSetFloat)
>
> I think this is a bug in libxml.
Seems you're right and the way xmlXPathEqualNodeSetFloat() is implemented
doesn't respect the XPath semantic :-(
bug_to_fix++
thanks for the report !
Daniel
--
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]