我正在评估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
0
和NaN
''
{}为number()
,我测试JxPath确实使用{{1}}函数转换它们。这意味着JxPath不会尝试将它们转换为数字,正如规范所定义的那样。
这是一个错误吗?
答案 0 :(得分:0)
是的,如果您的信息正确,那么我认为这是一个错误。