Something I started but never finished years ago was DOM Traversal. I wrote a load of header files, then never did anything else. Never even looked at it. Never even thought about it, nor used an implementation in another language. Looks like I was a bit silly though, because I've had a TreeWalker implementation donated by a chap called craigp. I wrote a few basic tests for it, and it actually looks rather good. I can think of several places over the past few years were it would have been jolly useful.
In short - if you're walking a DOM, have a look at TreeWalker.