使用 XSLT 进行模式匹配

发布于 2024-09-04 09:06:02 字数 267 浏览 5 评论 0原文

我尝试使用 matches 函数将模式与 XSLT/XPath 中的字符串进行匹配,如下所示:

<xsl:when test="matches('awesome','awe')">
   ...
</xsl:when>

但是,在 Firefox 3.5.9 和 IE8 中,它都没有显示。 IE8 告诉我“‘matches’不是有效的 XSLT 或 XPath 函数。”这是由于不支持 XSLT 2.0 造成的吗?有解决办法吗?

I'm trying to match a pattern into a string in XSLT/XPath using the matches function, as follows:

<xsl:when test="matches('awesome','awe')">
   ...
</xsl:when>

However, in both Firefox 3.5.9 and IE8, it doesn't show up. IE8 tells me that "'matches' is not a valid XSLT or XPath function." Is this due to XSLT 2.0 not being supported, and is there a way around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

同尘 2024-09-11 09:06:02

仅 XSLT 2.x/XPath 2.x 支持正则表达式

截至目前,还没有公开可用的浏览器支持 XSLT 2.x/XPath 2.x。

根据您的具体情况,您可以使用

starts-with('awesome','awe')

其他有用的 XPath 1.0 函数有:

  • contains()

  • substring()

  • substring-before()

  • substring-after()

  • normalize-space()

  • translate()

  • 字符串长度()

Regular Expressions are supported only in XSLT 2.x/XPath 2.x.

As at this date, no publicly available browser supports XSLT 2.x/XPath 2.x.

In your concrete case you can use:

starts-with('awesome','awe')

other useful XPath 1.0 functions are:

  • contains()

  • substring()

  • substring-before()

  • substring-after()

  • normalize-space()

  • translate()

  • string-length()

殤城〤 2024-09-11 09:06:02

除了浏览器不支持 XSLT/XPath 2.0 的正确提示之外:请注意 Firefox(我认为从版本 3.0 开始)支持一些 EXSLT 函数,特别是正则表达式: https://developer.mozilla.org/en/EXSLT#Regular_expressions 因此,使用 Firefox,您可以考虑使用 EXSLT 函数。对于使用 MSXML 的 IE,您可以合并 http://exslt.org/regexp /functions/match/regexp.match.msxsl.xsl 使用 msxsl:script 元素实现 EXSLT 匹配函数。

In addition to the correct hint that browsers don't support XSLT/XPath 2.0: note that Firefox (since version 3.0 I think) supports some EXSLT functions, in particular for regular expressions: https://developer.mozilla.org/en/EXSLT#Regular_expressions so with Firefox you could consider EXSLT functions. For IE using MSXML you could incorporate http://exslt.org/regexp/functions/match/regexp.match.msxsl.xsl which implements the EXSLT match function using the msxsl:script element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文