使用translate函数替换xml中的单引号(即进行转移处理),但不知道怎么写,我写成这样,总是报错,<xsl:value-of select="translate(.,'\'','\\'')"/>,经验证,前面那个.是没有问题的,就是不知道后面的参数如何写
translate只能替换相同数量的字符,实现Repalce,你需要使用模板。
XML code <xsl:template name="globalReplace">
<xsl:param name="outputString"/>
<xsl:param name="target"/>
<xsl:param name="replacement"/>
<xsl:choose>
<xsl:when test="contains($outputString,$target)">
<xsl:value-of select="concat(substring-before($outputString,$target),$replacement)"/>
<xsl:call-template name="globalReplace">
<xsl:with-param name="outputString" select="substring-after($outputString,$target)"/>
<xsl:with-param name="target" select="$target"/>
<xsl:with-param name="replacement" select="$replacement"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$outputString"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
调用方法
XML code<xsl:call-template name="globalReplace">
<xsl:with-param name="outputString" select="."/>
<xsl:with-param name="target" select="'\'"/>
<xsl:with-param name="replacement" select="'\\'"/>
</xsl:call-template>