我最近一直在使用XPath,並且一直在尋找哪些瀏覽器支持XPath 2.0而沒有太多運氣的信息。我能找到的最好的是各種渲染引擎的query technologies comparison table。什麼瀏覽器支持Xpath 2.0?
這清楚地告訴我,Firefox和IE(兩者的所有版本)都不支持XPath 2.0,但Chrome,Safari等其他渲染引擎如何?有沒有人有關於此的任何信息或知道在哪裏可以找到它?
我最近一直在使用XPath,並且一直在尋找哪些瀏覽器支持XPath 2.0而沒有太多運氣的信息。我能找到的最好的是各種渲染引擎的query technologies comparison table。什麼瀏覽器支持Xpath 2.0?
這清楚地告訴我,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>
還有Saxon CE,一個開源的JavaScript執行XSLT 2.0。由於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。