Subject: Re: [xsl] Using translate() for single quotes in XSL1.0|
From: "Oleg Konovalov" <olegkon@xxxxxxxxx>
Date: Sat, 26 Aug 2006 22:37:14 -0400
I am trying to replace 1 single quote with 2 single quotes. Should it work in template ?
Thank you, Oleg.
The translate() function does one-to-one replacement of characters. To do anything else, use the replace() function in XSLT 2.0, or look at the FAQ under "replace" to see how to do it under 1.0.
Michael Kay http://www.saxonica.com/
> -----Original Message----- > From: Oleg Konovalov [mailto:olegkon@xxxxxxxxx] > Sent: 25 August 2006 21:12 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Cc: ythakare@xxxxxxxxxxx > Subject: [xsl] Using translate() for single quotes in XSL1.0 > > 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.