NaN与任何其他值的XPath 1.0比较

问题描述

我在大学课程(确切地说是XPath 1.0)中学习XML和XPath,但偶然发现了一些东西。 F.e.如果我写一个表达式:

NaN < true()

它返回true。这很奇怪。当我这样做的时候。

NaN < 1

它返回false。 AFAIK XPath 1.0比较(不带节点集)首先将值转换为数字,然后才进行比较。所以,在第一个表达式中它是这样的

NaN < number(true())-> NaN < 1

第二个

NaN < 1

我想深入了解这一点,因此任何信息都将有所帮助。在docs中我没有发现任何有关此情况的信息。也许我错过了一些事情。

谢谢!

解决方法

令牌NaN不代表双精度值NaN,它是child::NaN的缩写,它返回一个空节点集(除非您的XML文档当然包含一个名为NaN的元素)。

我对一所大学应该教授XPath 1.0感到有些惊讶,而XPath 1.0早已被新版本所取代。当然,仍然有很多人在使用它,但是我本以为一所大学会教一个新版本。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...