Hpricot - How to walk the tree

What methods can be used to walk a Hpricot::XML tree from the root all
the way down?
I can achieve the result I am after using Rexml stream/listener
technique, but I would love to have Hpricot speed.
How are containers, nodes and elements used in the process?
I have experimented using container#containers but the process seems
messy.

Thanks
Paul F.