Ann*_*nie 3 javascript xml browser xpath dom
当我们看到一致性图表时,例如https://caniuse.com/#search=xpath和https://developer.microsoft.com/en-us/microsoft-edge/platform/status/domlevel3xpath/?q=xpath,它通常是关于DOM Level 3 XPath 的,重点是使用 XPath 1.0访问 DOM 对象,但不一定是 XPath 3.0 或更高版本。
问题 1 - W3C 等对浏览器是否有明确的版本要求以支持较新版本的 XPath?
此 XPath 1.0 功能有效:
document.evaluate(
'normalize-space(" X ")',
document, null, XPathResult.ANY_TYPE, null ).stringValue
// => "X"
Run Code Online (Sandbox Code Playgroud)
但是这个 XPath 3.0 内联函数功能 ( ref ) 会抛出:
document.evaluate(
'let $incr := function($n as xs:integer) as xs:integer { $n +1 } return $incr(2)',
document, null, XPathResult.ANY_TYPE, null ).stringValue
Run Code Online (Sandbox Code Playgroud)
边缘:
XPATH15001:不支持 XPath 查询“let $incr := function($n as xs:integer) as xs:integer { $n +1 } return $incr(2)”
火狐浏览器:
语法错误:该表达式不是合法表达式。
问题 2 - 如果浏览器允许 XPath 3.0,假设我的代码中存在错误;那么 v3.1 的功能(例如arrow-functions)怎么样,这些功能也被允许吗?
没有浏览器本身支持 XPath 2.0,更不用说 XPath 3.0。
另请注意,与 XSLT 不同,XPath 没有确定 XPath 实现版本的内在方法,除了尝试给定版本支持的函数并观察是否发生错误(如您所做的那样)。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |