哪些浏览器支持Xpath 2.0?

时间:2013-05-20 21:35:58

标签: xml xpath xml-parsing xpath-2.0

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

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

4 个答案:

答案 0 :(得分:5)

我不知道,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>

答案 1 :(得分:2)

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

但是,通过使用Saxon-CE,您可能会在Firefox中获得XPATH 2.0的支持,有关更多信息,请访问MDN XSLT_2.0 page.

答案 2 :(得分: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。

答案 3 :(得分:1)