This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Testing by counting or positional predicate


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]