> Can someone explain why? It's not very intuitive.
The XPath spec has an explicit warning that these are not the same.
if A and B are node sets and op is an infix operator
A op B is true if _any_ a in A and b in B satisfy a op b
so you can say *='x' and it tests if any child has value x, but
you can say *!='x' and that is true if any child is not equal to 'x'
(which isn't the same as not(*='x-).
If A and B are both node sets then A != B is almost always true
The only way it can be false is if every member of A has the same string
value, and every member of B has the same value.
!= was a late addition to Xpath, I always thought it was a mistake
to add it,almost always you want the not( ... = ...) form.
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list