我正在评估表达式'' = 0在JxPath 1.3中,我希望结果是假的。这是我的密码:
JXPathContext.newContext(ctaSectionABean).getValue("'' = 0");然而,返回的结果是真实的!如果我在Eclipse工具中计算相同的表达式,就会得到false,我希望它是正确的,因为xpath1.0 1.0文档第3.4节如下所示:
当要比较的对象都不是节点集且运算符为=或!=时,则通过将对象转换为公共类型进行比较,如下所示,然后比较它们。如果至少有一个要比较的对象是布尔值,那么要比较的每个对象都被转换为布尔值,就像应用布尔函数一样。否则,如果至少要比较的一个对象是一个数字,那么要比较的每个对象就像应用number函数一样被转换成一个数字。否则,要比较的两个对象都转换为字符串,就像应用string函数一样。当和只有当对象相等时,=比较才是真;当和只有当对象不相等时,!=比较才是真。根据IEEE 754和IEEE 754对等号进行比较。如果两者都是真的或两者都是假的,那么两个布尔值是相等的。两个字符串是相等的当且仅当它们包含相同的UCS字符序列。
因此,由于没有一个对象是布尔值,而且其中一个是数字,所以我希望JxPath尝试将它们都转换为数字。这将是0 ( 0 )和NaN ( '' ),我测试了JxPath确实用number()函数那样转换它们。这意味着JxPath不像规范所定义的那样试图将它们转换为数字。
这是个虫子吗?
发布于 2011-12-13 14:43:43
是的,如果你的信息是正确的,那么我认为这是一个错误。
https://stackoverflow.com/questions/8487904
复制相似问题