Re: [xml-dev] How to 'invert' an Xpath statement please

From
Philip Fearon <>
To
Date
2008-08-26T18:16:58Z
ID
<>
Thread
Re: [xml-dev] How to 'invert' an Xpath statement please
On Tue, Aug 26, 2008 at 2:33 PM, Rens Duijsens <> wrote:

> The normal xpath statement '//NODE' will give me:
> NODE, ELEMENT (with Element 2), ELEMENT (With Element 3)
>

As previous replies have stated, your expression returns a single node
that is an element with the name 'NODE'.

If you however use this '//NODE' in an expression where a string is
expected, it will be converted to a string value that is the
concatanation of all text nodes that are children of descendant
elements, 'Element 2Element 3', in this case. The expression:
 //NODE = 'Element 2Element 3' therefore also returns true.

This non-intuitive behaviour (to me at least) is the reason why
reading the specification or a good book to get a grasp of some basic
priniciples is definitely worthwhile.

If you're not ready to buy a book yet and find the W3C specification a
bit terse, you could try the free online O'Reilly Commons book by John
E. Simpson:

http://commons.oreilly.com/wiki/index.php/XPath_and_XPointer

--

Phil Fearon
http://www.sketchpath.com