哪些浏览器支持Xpath 2.0?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪些浏览器支持Xpath 2.0?相关的知识,希望对你有一定的参考价值。

我最近一直在使用XPath,并一直在寻找有关哪些浏览器支持XPath 2.0而没有太多运气的信息。我能找到的最好的是各种渲染引擎的query technologies comparison table

这清楚地告诉我Firefox和IE(两者的所有版本)都不支持XPath 2.0,但是Chrome,Safari等的其他渲染引擎呢?有没有人有这方面的信息或知道哪里可以找到它?

答案

我不知道,official list of implementations也没有。

另一种选择 - 当然比本机实现更低效 - 将是XQIB,它是javascript中的XQuery实现。 XPath 2.0作为XQuery 1.0的子集完全包含在内,因此您可以在所有支持JavaScript的浏览器中使用所有XPath 2.0功能(以及更多)。

从他们的网站上获取的short sample如何使用它:

<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>
另一答案

大多数浏览器不支持XPATH 2.0,请参阅Comparison of layout engines以获取更多信息。

但是,您可以通过使用Saxon-CE获得Firefox中XPATH 2.0的支持,请参阅MDN XSLT_2.0 page.上的更多信息

另一答案

还有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。

另一答案

有一个Open source XPath 2.0 implementation in JavaScript,也包裹为jQuery XPath plugin

以上是关于哪些浏览器支持Xpath 2.0?的主要内容,如果未能解决你的问题,请参考以下文章

支持 XPath 2.0 的 Java XSLT 处理器

哪些浏览器支持 XSLT 2.0?

.Net Core 3.1 和 .Net 5.0 是不是支持 XPath 2.0?

.NET 的 XPath 和 XSLT 2.0? [关闭]

vue视频学习笔记05

查找 XML 文档中的所有命名空间声明 - xPath 1.0 与 xPath 2.0