xsl-list
[Top] [All Lists]

Re: Escaping quotes in XPath expressions

2003-11-17 05:37:58
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