This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: quoting of special characters within XPath string



> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]