|
Subject: RE: [xsl] Xoath quote escaping From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 28 Apr 2007 18:02:53 +0100 |
In XPath 1.0, without variables, you're basically stuck with the XPath
expression
concat("This is some ", '"', "quoted", '"', " content of Ted's")
and then of course you have to backslash-escape the quotes to get them
through Javascript.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Duane Hitz [mailto:dhitz@xxxxxxxxxxxxxxxx]
> Sent: 28 April 2007 15:27
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Xoath quote escaping
>
> All,
>
> I have a situation where I am building an XPath expression in
> JavaScript to select nodes from an XML document. The content
> of the nodes could contain double quotes, single quotes or
> both at the same time. It is user-entered data, so I have no
> control ultimately over what the content contains.
>
> The content might be (brackets excluded): [This is some
> "quoted" content of Ted's]
>
> The dynamically built xpath expression might look like (where
> subNodeValue is the above content):
>
> 1) "//node[" + subNodeName + " = '" + subNodeValue + "']"
>
> ... except for the single quote problem... or:
>
> 2) "//node[" + subNodeName + " = \"" + subNodeValue + "\"]"
>
> ... except for the double quote problem... or even:
>
> 3) "//node[" + subNodeName + " = "" + subNodeValue + ""]"
>
> ...except that this just doesn't work.
>
> Any thoughts on how to make this work? Is it possible?
>
> I've read everything I can find on quote escaping (on this list and
> elsewhere) and there doesn't appear to be a solution that
> covers this case (I know XPath 2 is supposed to allow ""
> escaping - unfortunately, we're stuck on IE6+ & MSXML3).
>
> We are dynamically displaying rows in a table that meet the
> xpath criteria... setting a @showing attribute and then
> re-transforming... so it really has to be in JavaScript.
>
> One option would be to replace (s/"/'/g or s/"/''/g) all
> double quotes on the server side when building the XML - and
> then use option 2 above. I don't really want to change
> user-entered data. It is, sadly, what I've come down to. I'm
> hoping there's a more elegant solution to this.
>
> Thanks for any help...
>
> Duane
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Xoath quote escaping, Duane Hitz | Thread | Re: [xsl] Xoath quote escaping, Duane Hitz |
| [xsl] Evaluating condition strings, Martin Heiden | Date | [xsl] xsl-t on Mac, Saxon preferred, bryan rasmussen |
| Month |