2013-05-20 99 views
19

我最近一直在使用XPath,並且一直在尋找哪些瀏覽器支持XPath 2.0而沒有太多運氣的信息。我能找到的最好的是各種渲染引擎的query technologies comparison table什麼瀏覽器支持Xpath 2.0?

這清楚地告訴我,Firefox和IE(兩者的所有版本)都不支持XPath 2.0,但Chrome,Safari等其他渲染引擎如何?有沒有人有關於此的任何信息或知道在哪裏可以找到它?

回答

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

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