2013-05-20 14 views
19

Niedawno pracowałem z XPath i szukałem informacji na temat tego, które przeglądarki obsługują XPath 2.0 bez powodzenia. Najlepsze, co mogłem znaleźć, to query technologies comparison table różnych silników renderujących.Jakie przeglądarki obsługują Xpath 2.0?

To wyraźnie mówi mi, że Firefox i IE (wszystkie wersje obu) nie obsługują XPath 2.0, ale co z innymi silnikami renderującymi dla Chrome, Safari itp.? Czy ktoś ma jakieś informacje na ten temat lub wie, gdzie można go znaleźć?

Odpowiedz

5

Nie znam żadnego, a official list of implementations również nie zawiera.

Alternatywą - oczywiście mniej wydajną niż natywna implementacja - byłaby XQIB co jest implementacją XQuery w JavaScript. XPath 2.0 jest w pełni włączony jako podzbiór w XQuery 1.0, więc będziesz mógł używać wszystkich funkcji XPath 2.0 (i więcej) we wszystkich przeglądarkach z obsługą JavaScript.

A short sample podjęte z ich strony internetowej, w jaki sposób z niego korzystać:

<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

Istnieje również Saxon CE, implementacja open-source JavaScript XSLT 2.0. Ponieważ XSLT 2.0 zawiera XPath 2.0, zapewnia implementację XPath 2.0 w przeglądarce. Jednak nie jest wbudowany.

Próbowałem tylko aktualną wersję Safari (7.0.6) i nie akceptują XPath 2.0 funkcje, które dałem:

> 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 

więc powiedziałbym WebKit (konkretnie silnik JS , SquirrelFish/Nitro) obecnie nie obsługuje XPath 2.0.

Powiązane problemy