【问题标题】:What browsers support Xpath 2.0?哪些浏览器支持 Xpath 2.0?
【发布时间】:2013-05-15 13:24:43
【问题描述】:

我最近一直在使用 XPath,并且一直在寻找有关哪些浏览器支持 XPath 2.0 的信息,但运气不佳。我能找到的最好的是各种渲染引擎的query technologies comparison table

这清楚地告诉我 Firefox 和 IE(两者的所有版本)都不支持 XPath 2.0,但是 Chrome、Safari 等的其他渲染引擎呢?有没有人知道这方面的任何信息或知道在哪里可以找到它?

【问题讨论】:

    标签: xml xpath xml-parsing xpath-2.0


    【解决方案1】:

    我不知道,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>
    

    【讨论】:

      【解决方案2】:

      大部分浏览器不支持 XPATH 2.0,请查看Comparison of layout engines 了解更多信息。

      但是,您可以通过使用 Saxon-CE 在 Firefox 中获得对 XPATH 2.0 的支持,请参阅 MDN XSLT_2.0 page. 上的更多信息

      【讨论】:

        【解决方案3】:
        【解决方案4】:

        还有Saxon CE,它是 XSLT 2.0 的开源 Javascript 实现。由于 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。

        2020 年 8 月更新:Saxon-CE 的当前继任者是 Saxon-JS 2,它支持 XPath 3.1。

        【讨论】:

          猜你喜欢
          • 2011-09-11
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-30
          • 1970-01-01
          相关资源
          最近更新 更多