什么浏览器支持Xpath 2.0?

31

我最近一直在使用XPath,但一直在寻找有关哪些浏览器支持XPath 2.0的信息,但没有太大的运气。我能找到的最好的是各种渲染引擎的查询技术比较表

这清楚地告诉我Firefox和IE(所有版本)不支持XPath 2.0,但其他Chrome、Safari等渲染引擎呢?有人有相关信息或知道在哪里可以找到吗?

4个回答

5
我不知道有任何的实现,而且官方实现列表中也没有包括一个。
当然,一个替代方案 - 速度当然不如本地实现 - 将会是XQIB,它是一个在JavaScript中实现的XQuery。XPath 2.0被完全包含在XQuery 1.0的子集中,因此您将能够在所有支持JavaScript的浏览器中使用所有XPath 2.0功能(及更多功能)。
从他们的网站上获得的简短示例,告诉你如何使用它:
<script type="text/javascript" src="mxqueryjs/mxqueryjs.nocache.js"></script>
<script type="application/xquery">
  b:alert(
    let $x := <a><b>2</b><c>4</c></a>
    return xs:string($x/b * $x/c)
  )
</script>

3

1

还有Saxon CE,它是XSLT 2.0的开源JavaScript实现。由于XSLT 2.0包括XPath 2.0,因此这为浏览器提供了XPath 2.0实现。但它不是内置的。

我刚试了当前版本的Safari(7.0.6),它没有接受我给它的XPath 2.0函数:

> document.evaluate("starts-with('foo', 'f')", document.documentElement, null,
                 XPathResult.BOOLEAN_TYPE, null);
< XPathResult

> document.evaluate("ends-with('foo', 'o')", document.documentElement, null,
                 XPathResult.BOOLEAN_TYPE, null);
< Error: INVALID_EXPRESSION_ERR: DOM XPath Exception 51

我认为WebKit(特别是JS引擎SquirrelFish / Nitro)目前不支持XPath 2.0。
2020年8月更新:当前的Saxon-CE继任者是Saxon-JS 2,支持XPath 3.1。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接