2013-05-20 14 views
19

Gần đây tôi đã làm việc với XPath và đã tìm kiếm thông tin về những trình duyệt nào hỗ trợ XPath 2.0 mà không có nhiều may mắn. Điều tốt nhất tôi có thể tìm thấy là query technologies comparison table của các công cụ hiển thị khác nhau.Trình duyệt nào hỗ trợ Xpath 2.0?

Điều này rõ ràng cho tôi biết rằng Firefox và IE (tất cả các phiên bản của cả hai) không hỗ trợ XPath 2.0, nhưng còn các công cụ hiển thị khác cho Chrome, Safari, v.v ... thì sao? Có ai có bất kỳ thông tin về điều này hoặc biết nơi mà người ta có thể tìm thấy nó?

Trả lời

5

Tôi không biết bất kỳ điều gì và official list of implementations cũng không bao gồm một.

Một thay thế - tất nhiên ít hoạt động hơn so với triển khai gốc - sẽ là XQIB là triển khai XQuery trong JavaScript. XPath 2.0 được bao gồm đầy đủ như một tập hợp con trong XQuery 1.0, vì vậy bạn sẽ có thể sử dụng tất cả các tính năng XPath 2.0 (và nhiều hơn nữa) trong tất cả các trình duyệt có hỗ trợ JavaScript.

Một short sample lấy từ trang web của họ về cách sử dụng nó:

<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

Ngoài ra còn có Saxon CE, một mã nguồn mở javascript thực hiện XSLT 2.0. Vì XSLT 2.0 bao gồm XPath 2.0, điều này cung cấp một cài đặt XPath 2.0 trong trình duyệt. Tuy nhiên nó không được tích hợp sẵn.

Tôi chỉ cố gắng phiên bản hiện tại của Safari (7.0.6) và nó không chấp nhận XPath 2.0 chức năng mà tôi đã cho nó:

> 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 

Vì vậy, tôi muốn nói WebKit (đặc biệt là động cơ JS , SquirrelFish/Nitro) hiện không hỗ trợ XPath 2.0.

Các vấn đề liên quan