我的印象是现在所有最新的浏览器都支持 XPath 2。当我使用lower-case()
and uppser-case()
(版本 2 中引入的函数)Chrome 抛出语法错误。然而,他们的旧替代品translate()
工作正常。
这是一个错误还是最新的 Chrome 确实使用了 XPath 1?有没有命令/方法可以找出 XPath 版本?
// Finds the element as expected.
$x('//h2/text()[. = "Delete"]')
// Doesn't find the element (also expected).
$x('//h2/text()[. = "delete"]')
// SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//h2/text()[lower-case(.) = "delete"]' is not a valid XPath expression.
$x('//h2/text()[lower-case(.) = "delete"]')
不,Chrome 使用 XPath 1.0。
您可以将 XPath 表达式简化为 v2.0 函数来查看:
$x("lower-case('ABC')")
SyntaxError: Failed to execute 'evaluate' on 'Document': The string 'lower-case('ABC')' is not a valid XPath expression.
尝试任何其他 XPath 2.0 函数,例如current-date()
会产生类似的错误。
除了此类探测之外,没有任何内置方法可以明确确定 XPath 实现的版本。
另一方面,XSLT 有system-property('xsl:version')
用于确定版本 1.0 与 2.0。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)