我正在尝试使用matches函数将模式匹配到XSLT / XPath中的字符串,如下所示:
<xsl:when test="matches('awesome','awe')">
...
</xsl:when>
然而,在Firefox 3.5.9和IE8中,它都没有显示出来。 IE8告诉我“'匹配'不是有效的XSLT或XPath函数。”这是由于XSLT 2.0不受支持,有没有办法解决这个问题?
答案 0 :(得分:3)
仅在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()
string-length()
答案 1 :(得分:0)
除了正确提示浏览器不支持XSLT / XPath 2.0之外:请注意Firefox(我认为3.0版以后)支持一些EXSLT功能,特别是对于正则表达式:https://developer.mozilla.org/en/EXSLT#Regular_expressions所以使用Firefox你可以考虑EXSLT功能。对于使用MSXML的IE,您可以合并使用msxsl:script元素实现EXSLT匹配功能的http://exslt.org/regexp/functions/match/regexp.match.msxsl.xsl。