Re: quoting of special characters within XPath string

Subject: Re: quoting of special characters within XPath string
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 5 Apr 2000 17:48:15 +0100 (BST)
> 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&quot;','a',&quot;'&quot;)"

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


Current Thread