xsl-list
[Top] [All Lists]

RE: Hmmmm.... translate function

2003-03-15 14:05:44
that won't work with his example
If @div = "12 All +" you'll get:
12 All %12 All 212 All B
And what he wants is:
12 All %2B

You're right Americo.  This will work (I'm sure someone's already done one
of these somewhere on the FAQ.  Just a good exercise) using his + to %2B
requirements....

Jeff

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="text"/>

<xsl:template match="/">
        <!-- test replaceString template -->
                <xsl:call-template name="replaceString">
                        <xsl:with-param name="original"
select="'One+Flew+Over+The+Cuckoos+Nest'"/>
                        <xsl:with-param name="find" select="'+'"/>
                        <xsl:with-param name="replace" select="'%2B'"/>
                </xsl:call-template>
</xsl:template>

<xsl:template name="replaceString">
        <xsl:param name="original" select="string('')"/>
        <xsl:param name="find" select="string('')"/>
        <xsl:param name="replace" select="string('')"/>

        <xsl:choose>
                <xsl:when test="contains($original, $find)">
                        <xsl:call-template name="replaceString">
                                <xsl:with-param name="original"
select="concat(substring-before($original, $find),$replace,
substring-after($original, $find))"/>
                                <xsl:with-param name="find" select="$find"/>
                                <xsl:with-param name="replace" 
select="$replace"/>
                        </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                        <xsl:value-of select="$original"/>
                </xsl:otherwise>
        </xsl:choose>
</xsl:template>

</xsl:stylesheet>


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



<Prev in Thread] Current Thread [Next in Thread>