我遇到了一个问题<
Xpath 1.0 中字符串的运算符。
这个简单的 Xpath 表达式
'A' < 'B' (or the equivalent 'A' < 'B')
在 libxslt(这是一个 XSLT 1.0 引擎)中运行的 xslt 中,未评估为 true。
我检查了 XML Spy,它允许在 1.0 和 2.0 中测试 Xpath 表达式,果然,在 Xpath 2.0 中它的计算结果为true
,但在 Xpath 1.0 中它的计算结果为false
!
这是 Xpath 1.0 中的错误吗?
我应该使用什么其他表达式来比较两个字符串/字符的字母顺序?请注意,compare() 函数不起作用,因为这是 XSLT 2.0 函数。
在 XPath 1.0 中,字符串比较仅定义为=
and !=
,并且无法进行排序比较。规范说
当要比较的对象都不是节点集且运算符为
= 或 >,然后通过转换两者来比较对象
反对数字并根据 IEEE 754 比较数字。
因此,你的两个操作数都被转换为浮点数,使它们都是 NaN。
我相信 Microsoft 的 XML 添加了扩展函数来处理此问题,但当然这仅在您使用 MSXML 时才有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)