[xsl] Re: Escaping quotes in XPath expressions

Subject: [xsl] Re: Escaping quotes in XPath expressions
From: yguaba@xxxxxxxxxxxx
Date: Mon, 17 Nov 2003 10:37:58 -0200
On 15 Nov 2003 at 14:53, Dimitre Novatchev wrote:


> translate() can only translate a character into another character or to
> nothing. It is not possible using translate() to translate a character
> into two or more characters.
> 
> For such tasks it is convenient to use the "str-map" template from
> FXSL(...) 

------------------------------

On 15 Nov 2003 at 13:48, Michael Kay wrote:

> <xsl:variable name="quot">"</xsl:variable>
> <xsl:variable name="apos">'</xsl:variable>
> <xsl:value-of select="translate(., $quot, $apos)"/>

------------------------------

First of all, many thanks to Michael and Dimitre for replying to my message.

I had actually thought of using variables, but besides the problem Dimitre pointed out, 
I've read that in XSLT 1.1 the value of a variable *must* be contained in a 'select' 
attribute, or else you'll be creating a result tree fragment, which in XSLT 1.1 would be 
illegal. In other words, if I didn't want to write obsolete code, my variable would have to 
look something like this:

<xsl:variable name="apos" select="'"/>

Problem is, in the example above any single-quotes inside the double-quotes would 
also be special characters (used to enclose literals), so I'd have to find a way to escape 
that darned single-quote. Back to square one.

Is it an inescapable truth that there's no way to escape special characters within an 
Xpath string argument? Have I missed something about the creation of variables in 
XSLT 1.1? Help! :-O

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


Current Thread