This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: [ nodeset equivalence in intersection extension functions/elements ]
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: [ nodeset equivalence in intersection extension functions/elements ]
- From: Kay Michael <Michael dot Kay at icl dot com>
- Date: Thu, 30 Nov 2000 09:54:22 -0000
- Reply-To: xsl-list at mulberrytech dot com
> Mike Kay's book states: "2 node-sets are equal (returns true in an
> expression) if there is a pair of nodes, one from each
> node-set, that have the same string value"
>
> This definition to me is confusing since sometimes we want
> only the nodes
> with same "nodeName", attribute lists and string-value to be
> considered equal.
I don't think you find the definition confusing, you just wish it was
different!
> In other words, I want strict equivalence. Sample below illustrates -
"strict" implies a value judgement. You just want a boolean function that
compares two nodes and has different semantics from the XPath "=" operator.
Which is fair enough.
> Contrast this to the intersection() extension element from
> xt. In this case,
> even the hierachy of childnodes below an element must be
> equivalent (in
> addition to equivalent nodenames, attribute values etc...)
I suspect you will find that the intersection function in xt works like the
union operator, it compares nodes for identity, not for any kind of
"equivalence". Two nodes A and B are identical if count(A|B)=1.
You can do a set intersection, as defined here, in standard XPath by writing
$A[count(.|$B) = count($B)]
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list