1

我正在评估'' = 0JxPath 1.3 中的表达式,我希望结果为假。这是我的代码:

JXPathContext.newContext(ctaSectionABean).getValue("'' = 0");

但是,返回的结果是真的!如果我在 Eclipse jxpath 工具中评估相同的表达式,我会得到错误,我希望这是正确的,因为xpath1.0第 3.4 节的文档说明了以下内容:

当要比较的对象都不是节点集并且运算符是 = 或 != 时,通过将对象转换为以下常见类型然后进行比较来比较对象。如果至少一个要比较的对象是布尔值,则每个要比较的对象都被转换为布尔值,就好像通过应用布尔函数一样。否则,如果至少一个要比较的对象是一个数字,则每个要比较的对象都被转换为一个数字,就好像通过应用 number 函数一样。否则,两个要比较的对象都被转换为字符串,就好像通过应用字符串函数一样。当且仅当对象相等时 = 比较才会为真;当且仅当对象不相等时,!= 比较才会为真。根据 IEEE 754 [IEEE 754] 比较数字是否相等。如果两个布尔值都为真或都为假,则两个布尔值相等。两个字符串相等当且仅当它们由相同的 UCS 字符序列组成。

因此,由于没有对象是布尔值并且其中一个是数字,我希望 JxPath 尝试将它们都转换为数字。那将是0for0NaNfor '',并且我测试了 JxPath 确实使用number()函数将它们转换为这种方式。这意味着 JxPath 不会尝试将它们转换为规范定义的数字。

这是一个错误吗?

4

1 回答 1

0

是的,如果您的信息是正确的,那么我认为这是一个错误。

于 2011-12-13T14:43:43.840 回答