与XSLT匹配的模式

时间:2010-06-08 20:24:35

标签: xslt xpath pattern-matching xslt-2.0

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

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

然而,在Firefox 3.5.9和IE8中,它都没有显示出来。 IE8告诉我“'匹配'不是有效的XSLT或XPath函数。”这是由于XSLT 2.0不受支持,有没有办法解决这个问题?

2 个答案:

答案 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