xsl-list
[Top] [All Lists]

Re: Problem using translate to escape quotes

2002-12-04 09:13:06
Kevin Collins wrote:
I have a string containing single quotes held in a variable. I want to
escape each quote by inserting a backslash before it, but I can't get it
to work. The translate function appears to be inserting the backslashes
without the quotes.

Kevin,

The translate function does single character replacement. To get what you want, you need to use some of the other string functions. Lokk at starts-with(), concat(), contains, substring-before(), etc. Since you have multiple occurences of the quote character, you will probably need to build a recursive template to get them all.

jeff




Here's a test version of the stylesheet:
--------------------------------------------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:output method="html"/>

<xsl:variable name="mystr">this is Kevin's 'string'</xsl:variable>

<xsl:variable name="backSlashQuote">&#92;&#39;</xsl:variable>
<xsl:variable name="backSlash">&#92;</xsl:variable>
<xsl:variable name="singleQuote">&#39;</xsl:variable>
<xsl:variable name="backSlashQuote2"><xsl:value-of select="concat(
$backSlash, $singleQuote )"/></xsl:variable>

<xsl:variable name="mystr_escaped">
 <xsl:value-of select="translate( $mystr, $singleQuote, $backSlashQuote
)"/>
</xsl:variable>

<xsl:template match="/">
<html>
 <body>
  <xsl:value-of select="$mystr"/>
  <br/>
  <xsl:value-of select="$mystr_escaped"/>
 </body>
</html>
</xsl:template>

</xsl:stylesheet>
--------------------------------------------




--
--------------------------
Jeff Kenton
DataPower Technology, Inc.



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



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