首页 > 解决方案 > NaN 和任何其他值的 XPath 1.0 比较

问题描述

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

NaN < true()

它返回真。这很奇怪。当我做。

NaN < 1

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

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

在第二个

NaN < 1

我想深入了解这一点,所以任何信息都会有所帮助。我在文档中没有找到任何关于这种情况的信息。也许我错过了什么。

提前致谢!

标签: xpathnanxpath-1.0

解决方案


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

我有点惊讶一所大学应该教授 XPath 1.0,而 XPath 1.0 早已被新版本所取代。当然很多人仍在使用它,但我原以为大学会教授更新的版本。


推荐阅读