This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Is "A != B" equivalent to "not(A = B)"?
- From: David Carlisle <davidc at nag dot co dot uk>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Sat, 27 Apr 2002 10:31:22 +0100
- Subject: Re: [xsl] Is "A != B" equivalent to "not(A = B)"?
- References: <6286FEC8-59B6-11D6-8ECA-0003930BCEFA@beebo.org>
- Reply-to: xsl-list at lists dot mulberrytech dot com
> 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