使用xslt 1.0我试图替换空格的char“:”,在此之前我需要在第一次出现“:”之前忽略字符。例如:
拥有: 07:090126:00006591 :::
我想得到。
090126 00006591。
我尝试使用这两个模板,但我无法实现它。
<xsl:param name="requestor"/>
<xsl:call-template name="string-replace">
<xsl:with-param name="string" select="substring-after($requestor,':')" />
<xsl:with-param name="replace" select=':' />
<xsl:with-param name="with" select=' ' />
</xsl:call-template>
</xsl:template>
<xsl:template name="string-replace">
<xsl:param name="string" />
<xsl:param name="replace" />
<xsl:param name="with" />
<xsl:choose>
<xsl:when test="contains($string, $replace)">
<xsl:value-of select="substring-before($string, $replace)" />
<xsl:value-of select="$with" />
<xsl:call-template name="string-replace">
<xsl:with-param name="string" select="substring-after($string,$replace)" />
<xsl:with-param name="replace" select="$replace" />
<xsl:with-param name="with" select="$with" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string" />
</xsl:otherwise>
</xsl:choose>
有人可以帮忙吗?
此行不起作用:
<xsl:with-param name="replace" select=':' />
<xsl:with-param name="with" select=' ' />
Regards1!
答案 0 :(得分:0)
您需要在字符串文字周围使用分隔符:
<xsl:call-template name="string-replace">
<xsl:with-param name="string" select="substring-after($requestor,':')" />
<xsl:with-param name="replace" select="':'" />
<xsl:with-param name="with" select="' '" />
</xsl:call-template>