[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Is "A != B" equivalent to "not(A = B)"?

Subject: Re: [xsl] Is "A != B" equivalent to "not(A = B)"?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Sat, 27 Apr 2002 10:31:22 +0100

> 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.


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

Current Thread