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/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--