Originally, I used SAX -- but built DOM objects with it. I moved from application-specific DOM's to generic DOM's.
Then I switched to the miniDOM parser. It gave me structures I could walk with a pleasant Visitor design.
Last year, I switched to Element Tree. Now I can use Visitor and the XPATH search.