我有一个像这样的字符串
"My string"
现在我想用best
替换my
,以便输出结果为best string
。我尝试过类似这样的东西:
<xsl:value-of select="replace( 'my string',my,best)"/>
但很可能是错误的语法
我已经搜索了很多,但没有找到任何东西...在任何地方都解释了如何使用机制来做XSLT 1.0。有人能告诉我如何在XSLT 2.0中做到这一点吗?相对于1.0更简单的方法
我有一个像这样的字符串
"My string"
现在我想用best
替换my
,以便输出结果为best string
。我尝试过类似这样的东西:
<xsl:value-of select="replace( 'my string',my,best)"/>
但很可能是错误的语法
我已经搜索了很多,但没有找到任何东西...在任何地方都解释了如何使用机制来做XSLT 1.0。有人能告诉我如何在XSLT 2.0中做到这一点吗?相对于1.0更简单的方法
给定:
<xsl:variable name="s1" select="'My string'"/>
只需使用:
<xsl:value-of select="replace($s1, 'My', 'best')"/>
请注意,这里应用了正则表达式。意思是:
<xsl:value-of select="replace('test.replace', '.', ':')"/>
变为:
::::::::::::
一定要对正则表达式解释器具有特殊含义的字符进行转义:
<xsl:value-of select="replace('test.replace', '\.', '::')"/>
变成:
test::replace
首先检查一下你的xslt处理器(saxxon)是否是最新版本。然后,在你的xslt样式表的头部设置<xsl:stylesheet version="2.0"
。就这样了。
除此之外,你的代码没问题,只是你忘记了引号:
<xsl:value-of select="replace( 'my string',my,best)"/>
<xsl:value-of select="replace('my string','my','best')"/>
XSLT 2.0
吗?如果是这样,也许您应该在 XSLT 中声明命名空间xmlns:fn="http://www.w3.org/2005/xpath-functions"
并将函数用作fn:replace($s1, 'My', 'best')
。请参见:http://www.w3schools.com/xpath/xpath_functions.asp - Mark Veenstra