NaN 和任何其他值的 XPath 1.0 比较
XPath 1.0 comparison of NaN and any other value
我在大学课程中学习 XML 和 XPath(准确地说是 XPath 1.0),我偶然发现了一些东西。 F.e。如果我写一个表达式:
NaN < true()
它 returns 是的。这很奇怪。当我做的时候。
NaN < 1
它 returns 错误。 AFAIK XPath 1.0 比较(没有节点集)首先将值转换为数字,然后才比较它们。所以,在第一个表达式中它是这样的
NaN < number(true())
-> NaN < 1
第二个
NaN < 1
我想弄个水落石出,所以任何信息都会有所帮助。我在 docs 中没有找到任何关于这种情况的信息。也许我错过了什么。
提前致谢!
令牌 NaN 不代表双精度值 NaN,它是 child::NaN
的缩写,其中 returns 一个空的 node-set(当然,除非您的 XML 文档包含一个名为 NaN 的元素)。
令我惊讶的是,一所大学竟然教授 XPath 1.0,它早已被新版本所取代。当然很多人还在使用它,但我本以为大学会教更新的版本。
我在大学课程中学习 XML 和 XPath(准确地说是 XPath 1.0),我偶然发现了一些东西。 F.e。如果我写一个表达式:
NaN < true()
它 returns 是的。这很奇怪。当我做的时候。
NaN < 1
它 returns 错误。 AFAIK XPath 1.0 比较(没有节点集)首先将值转换为数字,然后才比较它们。所以,在第一个表达式中它是这样的
NaN < number(true())
-> NaN < 1
第二个
NaN < 1
我想弄个水落石出,所以任何信息都会有所帮助。我在 docs 中没有找到任何关于这种情况的信息。也许我错过了什么。
提前致谢!
令牌 NaN 不代表双精度值 NaN,它是 child::NaN
的缩写,其中 returns 一个空的 node-set(当然,除非您的 XML 文档包含一个名为 NaN 的元素)。
令我惊讶的是,一所大学竟然教授 XPath 1.0,它早已被新版本所取代。当然很多人还在使用它,但我本以为大学会教更新的版本。