我正在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,对于0NaN;对于'',对于number(),我测试了JxPath确实使用函数将它们转换了。这意味着JxPath不会按照规范定义尝试将它们转换为数字。

这是一个错误吗?

最佳答案

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

09-29 19:21