Re: [xsl] xslt replace special characters

Subject: Re: [xsl] xslt replace special characters
From: Greg Faron <gfaron@xxxxxxxxxxxxxxxxxx>
Date: Fri, 08 Nov 2002 13:33:19 -0700
At 01:14 PM 11/8/2002, you wrote:
thank you. it works if i just use it for one character. can i put in more than one character in the pattern variable at once? if i keep calling the template, obviously i will get the string variable the number of i call the template. so what do you suggest that i do if i have a string like this.
http://www.domain.com?xxx=yyy&www=y
i want to convert

? to %3f
= to %3d
& to %26

You must call the template multiple times, each time feeding it the result of the previous replacement. The following command
<xsl:call-template name="replace">
<xsl:with-param name="string">
<xsl:call-template name="replace">
<xsl:with-param name="string">
<xsl:call-template name="replace">
<xsl:with-param name="string" select="$url"/>
<xsl:with-param name="pattern" select="'&amp;'"/>
<xsl:with-param name="replacement" select="'%26'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="pattern" select="'='"/>
<xsl:with-param name="replacement" select="'%3d'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="pattern" select="'?'"/>
<xsl:with-param name="replacement" select="'%3f'"/>
</xsl:call-template>
transforms
http://www.domain.com?xxx=yyy&www=y
into
http://www.domain.com%3fxxx%3dyyy%26www%3dy
if the former was located in the variable $url.



Greg Faron Integre Technical Publishing Co.



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread