This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: quoting of special characters within XPath string
- To: xsl-list at mulberrytech dot com
- Subject: Re: quoting of special characters within XPath string
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Wed, 5 Apr 2000 17:48:15 +0100 (BST)
- References: <NCBBIPMOPKLLGKJPBINCIELHEAAA.reschke@medicaldataservice.de>
- Reply-To: xsl-list at mulberrytech dot com
> I can not guarantee that variableString does not contain single or double
> quotes. It might even contain both kinds of quotes. How do I have to escape
> (?) those quotes to get a well-formed XPath string?
there are some examples of this in the archive, but...
First just consider the xpath syntax.
You can use " or ' to delimit a string literal, so if you only want one
then you can delimit with the other.
"'" or '"'
if you want both then you can not do it directly in a string literal but
you can construct the string '" using
translate('a"','a',"'")
or
concat("'",'"')
or if you drop out of xpath, to xslt
<xsl:variable name="x">'"</xsl:variable>
then use $x as this result tree fragment will coerce to a string.
Then you need to get one of those expressions into an XML attribute
If you use " to delimit the attribute value then you need to quote "
so you end up with
select="translate('a"','a',"'")"
which looks a bit odd but the XML parser eats that and gives the xpath
system translate('a"','a',"'") which takes the string a" and replaces
the a by '.
I was thinkin about something like
selectNodesParametrized (node, "/element[@attr ='$$']", variableString);
isn't that just
select="/element[@attr = $variableString]" ?
or perhaps I didn't understand the question.
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list