Subject: 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
|