This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re:
- From: Peter Davis <pdavis152 at attbi dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 31 Jan 2002 22:32:20 -0800
- Subject: [xsl] Re:
- References: <5.1.0.14.0.20020130085032.00a48aa0@digexch1>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Although this looks like a bug in your processor, you might try nesting the
<xsl:call-template> calls:
<xsl:variable name="value1">
<xsl:call-template name="encode">
<xsl:with-param name="inString">
<xsl:call-template name="encode">
<xsl:with-param name="inString" select="string(.)"/>
<xsl:with-param name="oldChars" select="'%'"/>
<xsl:with-param name="newChars" select="'%25'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="oldChars" select="' '"/>
<xsl:with-param name="newChars" select="'%20'"/>
</xsl:call-template>
</xsl:variable>
This should eliminate the need for having 2 different variables. You could
also replace the <xsl:value-of select="$value2"/> call below with the first
<xsl:call-template> and eliminate the need for all the variables.
On Wednesday 30 January 2002 06:59, Jay Burgess wrote:
> (Since my previous post didn't get any responses, I'm trying again, but
> this time stating my problem purely in terms of XSL.)
>
> Below is a simple encode template for name/value pairs in the query string
> of a URL. Is there a better way to do this? The reason I'm asking is that
> it doesn't always work, and in the cases it fails, it appears like the
> "value2" variable is trying to initialize before "value1" is fully defined
> (timing problem?).
>
> <xsl:template name="param">
> <xsl:variable name="value1">
> <xsl:call-template name="encode">
> <xsl:with-param name="inString" select="string(.)"/>
> <xsl:with-param name="oldChars" select="'%'"/>
> <xsl:with-param name="newChars" select="'%25'"/>
> </xsl:call-template>
> </xsl:variable>
> <xsl:variable name="value2">
> <xsl:call-template name="encode">
> <xsl:with-param name="inString" select="string($value1)"/>
> <xsl:with-param name="oldChars" select="' '"/>
> <xsl:with-param name="newChars" select="'%20'"/>
> </xsl:call-template>
> </xsl:variable>
> <xsl:text>"&</xsl:text><xsl:value-of
> select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="$value2"/>
> </xsl:template>
>
> Thanks.
>
> Jay
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
Peter Davis
Show business is just like high school, except you get paid.
-- Martin Mull
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list