【问题标题】:Using regexp namespace from EXSLT in browser console causes a SyntaxError在浏览器控制台中使用来自 EXSLT 的 regexp 命名空间会导致 SyntaxError
【发布时间】:2019-10-15 14:29:41
【问题描述】:

在浏览器控制台中搜索元素时,我想在我的 XPath 表达式中使用 regexp 命名空间,但得到 SyntaxError: The expression is not a legal expression. 尝试这样做。

我按照 http://help.dottoro.com/ljspsvcs.php 作为创建命名空间解析器的教程。

这是我的代码:

function nsResolver (nsPrefix) {
    if (nsPrefix == "regexp") {
        return "http://exslt.org/regular-expressions";
    }
    return null;
}
document.evaluate('//a[regexp:test(@href, "qwerty-[\d]+$")]', document.documentElement, nsResolver, XPathResult.ANY_TYPE, null);

我在这里做错了什么?

【问题讨论】:

    标签: javascript xml firefox xpath


    【解决方案1】:

    某人在特定名称空间中定义了一组扩展函数这一事实并不意味着每个 XSLT 处理器都支持这些函数。这里的问题是您使用的是多年未升级的古老 XSLT 处理器(因为浏览器供应商对 XML 用户社区失去了兴趣)。

    考虑安装 Saxon-JS,它提供了在浏览器中运行的 XSLT 3.0,并根据 W3C 规范内置了正则表达式支持。 (免责声明:这是我公司的产品)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多