2013-05-20 35 views
19

Ich habe kürzlich mit XPath gearbeitet und habe nach Informationen gesucht, welche Browser XPath 2.0 ohne viel Glück unterstützen. Das Beste, was ich finden konnte, war die query technologies comparison table von verschiedenen Rendering-Engines.Welche Browser unterstützen Xpath 2.0?

Das sagt mir klar, dass Firefox und IE (alle Versionen von beiden) XPath 2.0 nicht unterstützen, aber was ist mit den anderen Rendering-Engines für Chrome, Safari, etc.? Hat jemand irgendwelche Informationen darüber oder weiß, wo man es finden kann?

Antwort

5

Ich kenne keine, und die official list of implementations enthält auch keine.

Eine Alternative - natürlich weniger performant als eine native Implementierung - wäre XQIB, die eine XQuery-Implementierung in JavaScript ist. XPath 2.0 ist vollständig als Teilmenge in XQuery 1.0 enthalten, so dass Sie alle XPath 2.0-Funktionen (und mehr) in allen Browsern mit JavaScript-Unterstützung verwenden können.

A short sample von ihrer Website genommen, wie es zu benutzen:

<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

Es gibt auch Saxon CE, eine Open-Source Javascript Implementierung von XSLT 2.0. Da XSLT 2.0 XPath 2.0 enthält, wird eine XPath 2.0-Implementierung im Browser bereitgestellt. Es ist jedoch nicht eingebaut.

Ich habe gerade versucht, die aktuelle Version von Safari (7.0.6), und es hat die XPath 2.0-Funktionen nicht akzeptieren, dass ich es gab:

> 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 

Also würde ich sagen WebKit (speziell die JS-Engine , SquirrelFish/Nitro) unterstützt derzeit XPath 2.0 nicht.

Verwandte Themen