使用 XSLT 进行模式匹配
我尝试使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
仅 XSLT 2.x/XPath 2.x 支持正则表达式。
截至目前,还没有公开可用的浏览器支持 XSLT 2.x/XPath 2.x。
根据您的具体情况,您可以使用:
其他有用的 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:
other useful XPath 1.0 functions are:
contains()
substring()
substring-before()
substring-after()
normalize-space()
translate()
string-length()
除了浏览器不支持 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.