xsl的translate函数使用

梦幻圣者 2011-08-16 08:33:01
我想使用translate函数替换xml中的单引号(即进行转移处理),但不知道怎么写,我写成这样,总是报错,<xsl:value-of select="translate(.,'\'','\\'')"/>,经验证,前面那个.是没有问题的,就是不知道后面的参数如何写,请高手帮忙,谢谢。
...全文
465 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2011-08-16
  • 打赏
  • 举报
回复
translate只能替换相同数量的字符,实现Repalce,你需要使用模板。

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


调用方法
<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>

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧