Subject: Re: [xsl] How to select for ' in XPATH? From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> Date: Wed, 5 Aug 2009 20:36:08 +0200 |
There was a typo in my last email, '%22' works for " "/*/*/*[contains(normalize-space(.),'%22')])" and '%27' does not work for ' ( the %22 gets converted to " character by unescape(s) ) > you are left with breaking up the string into components that > contain no single quote and components that contain a single quote and > then concatenate them e.g. if the selection on the page is e.g. > What's that? > you use > "//*[contains(., concat('What', \"'\", ' that?')" Good idea to break this up and concatenate. But the basic problem remains, how to match for the single " ? \"'\" does not work :-( > Implementing breaking up the string with JavaScript should be possible >although having to stuff all that into a bookmarklet might get ugly. Perhaps this might get ugly, but not without a solution to match for the single " character ... Mit besten Gruessen / Best wishes, Hermann Stamm-Wilbrandt Developer, XML Compiler WebSphere DataPower SOA Appliances ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschaeftsfuehrung: Erich Baier Sitz der Gesellschaft: Boeblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 Martin Honnen <Martin.Honnen@gm x.de> To xsl-list@xxxxxxxxxxxxxxxxxxxxxx 08/05/2009 08:13 cc PM Subject Re: [xsl] How to select for ' Please respond to in XPATH? xsl-list@xxxxxxxx lberrytech.com Hermann Stamm-Wilbrandt wrote: > My real problem seems to be that I need a XPATH 1.0 solution since > I want to do this in a browser environment, right? > > > The real problem is as follows: > - open an arbitrary web page in Firefox browser > > - with a bookmarklet do an arbitrary selection in that page > (http://en.wikipedia.org/wiki/Bookmarklet) > > - then the bookmarklet generates eg. the following xpath: > "//*[contains(normalize-space(.),'xyz')]" > where xyz is replaced by the actual selection data > > - then Mozilla's document.evaluate() is used to determine the > corresponding node in the DOM > Any hint what can be done to make this work? > (I have no control over the webpage nor control over user selection) XPath 1.0 has no escape mechanism for string literals. Unless you can use variables (and I don't know of a way with document.evaluate to do that) you are left with breaking up the string into components that contain no single quote and components that contain a single quote and then concatenate them e.g. if the selection on the page is e.g. What's that? you use "//*[contains(., concat('What', \"'\", ' that?')" Implementing breaking up the string with JavaScript should be possible although having to stuff all that into a bookmarklet might get ugly. -- Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to select for ' , Martin Honnen | Thread | Re: [xsl] How to select for ' , G. Ken Holman |
Re: [xsl] Problem with sum values w, Jacek Dunia | Date | RE: [xsl] xmlsh (slightly off-topic, Michael Kay |
Month |