This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Testing by counting or positional predicate
- To: mail at jenitennison dot com
- Subject: Re: [xsl] Testing by counting or positional predicate
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Thu, 11 Jan 2001 04:29:44 -0800 (PST)
- Cc: xsl-list at lists dot mulberrytech dot com
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Jeni,
I'd try something else -- while in all provided expressions you have to
compute the union of the two node-sets, why not try to find the set
difference b/n $superset and $subset.
That is,
not($subset[count(. | $superset) > count($superset)])
In case of a "smart" processor it will stop evaluating the above
expression immediately when the first node from $subset that does not
belong to $superset is found.
In the best case just one node may be tried.
In the worst case, the time must be similar to the time for uniting the
two node-sets.
Cheers,
Dimitre.
Jeni Tennison wrote:
David C. and I have both brought this up recently, but hidden away in
the depths of other messages and I don't think anyone has commented on
it. So, I was wondering: which is more efficient for testing whether a
$subset node set is a subset of a $superset node set?
count($subset|$superset) = count($superset)
or:
not(($subset|$superset)[count($superset) + 1])
Does it make any difference if the $subset is just one node?
count($node|$node-set) = count($node-set)
or:
not(($node|$node-set)[count($node-set) + 1])
Does this extend to testing for identity or is the unioned set so
small that it doesn't make any odds?
count($node1|$node2) = 1
or:
not(($node1|$node2)[2])
Thanks,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
__________________________________________________
Do You Yahoo!?
Yahoo! Photos - Share your holiday photos online!
http://photos.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list