我正在JxPath 1.3中评估表达式'' = 0
,并且我希望结果为假。这是我的代码:
JXPathContext.newContext(ctaSectionABean).getValue("'' = 0");
但是,返回的结果为true!如果我在Eclipse jxpath工具中评估相同的表达式,我会得到假,我希望它是正确的,因为documentation of xpath1.0 3.4节说以下内容:
当两个要比较的对象都不是节点集且运算符为=
或!=,然后通过将对象转换为通用对象来进行比较
键入以下内容,然后进行比较。如果至少有一个物体
compare是一个布尔值,然后将每个要比较的对象转换为
布尔值,就像通过应用布尔函数一样。否则,如果在
至少一个要比较的对象是一个数字,那么每个要比较的对象
将比较后的结果转换为数字,就好像应用该数字一样
功能。否则,将两个要比较的对象都转换为
字符串,就像通过应用string函数一样。 =比较将
当且仅当对象相等时为真; !=比较将
当且仅当对象不相等时才为true。数字比较
符合IEEE 754 [IEEE 754]的要求。两个布尔值相等
如果两者均为真或均为假。如果两个字符串相等
并且仅当它们由相同的UCS字符序列组成时。
因此,由于没有对象是布尔值,并且其中一个是数字,所以我希望JxPath尝试将它们都转换为数字。对于
0
,对于0
是NaN
;对于''
,对于number()
,我测试了JxPath确实使用函数将它们转换了。这意味着JxPath不会按照规范定义尝试将它们转换为数字。这是一个错误吗?
最佳答案
是的,如果您的信息正确,那么我认为这是一个错误。