[xsl] Using translate() for single quotes in XSL1.0

Subject: [xsl] Using translate() for single quotes in XSL1.0
From: "Oleg Konovalov" <olegkon@xxxxxxxxx>
Date: Fri, 25 Aug 2006 16:11:51 -0400
Hi,

I am writing an XSL Transformer for SQL query and some
of the column values ("ASSOCIATION_NAME")  in DB might have a single
quote in the name,
which poses a problem in SQL.

Example:

<xsl:text>  ...
(SELECT association_id
FROM ASSOCIATION
WHERE association_name='</xsl:text>
<xsl:value-of select='$row/sht:Cell[sht:Name="ASSOCIATION_NAME"]/sht:Content'/><xsl:text>'
) )</xsl:text>...

like: "MACY'S"
So I tried to use to replace 1 single quote in the column values with
2 single quotes
which SQL should resolve using translate(value, "'", "''").
But there is such a mishmash of quotes and double quotes that it's
impossible to resolve:
...
<xsl:value-of select='translate(
$row/sht:Cell[sht:Name="ASSOCIATION_NAME"]/sht:Content, '"", "'''")'/>

Any way around it, maybe via ASCII of single quotes ?


Thank you in advance, Oleg.

Current Thread