哪些浏览器支持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?的主要内容,如果未能解决你的问题,请参考以下文章