模式匹配与XSLT

模式匹配与XSLT,xslt,xpath,pattern-matching,xslt-2.0,Xslt,Xpath,Pattern Matching,Xslt 2.0,我尝试使用matches函数将模式匹配到XSLT/XPath中的字符串中,如下所示: <xsl:when test="matches('awesome','awe')"> ... </xsl:when> ... 然而,在Firefox3.5.9和IE8中,它都没有出现。IE8告诉我,“'matches'不是有效的XSLT或XPath函数。”这是因为XSLT 2.0不受支持,有没有办法解决这个问题?只有XSLT 2.x/XPath 2.x才支持正则表达式 到目前

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

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

...

然而,在Firefox3.5.9和IE8中,它都没有出现。IE8告诉我,“'matches'不是有效的XSLT或XPath函数。”这是因为XSLT 2.0不受支持,有没有办法解决这个问题?

只有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()


除了正确的提示,浏览器不支持XSLT /XPath 2:注意Firefox(因为我认为版本3)支持一些ExSLT函数,特别是对于正则表达式:所以使用Firefox可以考虑EXSLT函数。对于使用MSXML的IE,可以使用msxsl:script元素合并实现EXSLT匹配函数的

好问题(+1)。请参阅我的答案以获得解释,并查看一些有用的函数以获得替代解决方案。谢谢!fn:匹配本来会很好,但我想我必须处理contains和自定义字符串。