[
Lists Home |
Date Index |
Thread Index
]
In article <4222323E.7000801@metalab.unc.edu> you write:
>I'm wondering if anyone knows an efficient algorithm for comparing two
>nodes for document order? I'm looking for something better than simply
>walking the tree from beginning to end and seeing which node appears
>first.
Something like this:
- handle the case where they're the same node;
- handle attributes and namespace nodes by considering their
owner elements;
- find the nearest common ancestor by comparing ancestor lists,
and handle the case where one's an ancestor of the other;
- the document order of the nodes is the document order of the
respective children of the common ancestor, which can be found by
traversing the list of children of that node to see which comes
first.
I don't think you can do any better than this without more knowledge
than just the document tree.
-- Richard
|