JxPath:评估''= 0

时间:2011-12-13 10:50:50

标签: java xpath expression equality jxpath

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

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

然而,结果返回是真的!如果我在Eclipse jxpath工具中评估相同的表达式,我会得到false,我希望这是正确的,因为documentation of xpath1.0部分3.4说明如下:

  

当要比较的对象都不是节点集且运算符是=时   或!=,然后通过将对象转换为公共对象来比较对象   键入如下,然后比较它们。如果至少有一个对象   比较是一个布尔值,然后将要比较的每个对象转换为   一个布尔值,好像通过应用布尔函数。否则,如果在   至少有一个要比较的对象是一个数字,然后是每个对象   比较被转换为数字,就像应用数字一样   功能。否则,要比较的两个对象都将转换为   字符串,好像通过应用字符串函数。 =比较会   当且仅当物体相等时才是真的; !=比较会   当且仅当对象不相等时才为真。数字被比较   根据IEEE 754 [IEEE 754]的平等性。两个布尔是平等的   如果两者都是真或两者都是假的。如果两个字符串相等   并且只有它们由相同的UCS字符序列组成。

因此,由于没有对象是布尔值而其中一个是数字,我希望JxPath尝试将它们都转换为数字。 0 0NaN '' {}为number(),我测试JxPath确实使用{{1}}函数转换它们。这意味着JxPath不会尝试将它们转换为数字,正如规范所定义的那样。

这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

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