So far, during this series of articles (part 1, part 2) we've looked at DOM and SAX, and I suppose most of you are thinking which one of the two approaches is preferable? Well, there is no general rule of thumb, but this article might help you make the right decision when you’ll have to.
NOTEBefore you get started, you'll probably want to download the support file (70KB) which contains sample codes for all articles in this series up to this point.)
Those of you who read the previous article and manage not to fall asleep before the end will probably remember our little (silly) XML example that was parsed using both the DOM and the SAX approach. As we have seen, both of them achieved the same thing, which raises the obvious questions:
Why have 2 ways of doing the same thing?
Which one is the better one to use?
Oh yeah, there is always the 3rd question about the meaning of life --but we will leave that one for the time being. (It's more of a Linux programming question, anyway.)
The reason for having these two ways of doing things is due to the fact that the two standards come from different sources: as we stated before, DOM was produced by W3C while SAX came from David Megginson. Also, the two standards are based on two different paradigms -- while DOM produces a document tree at the end of the parsing process, which can then be manipulated/interrogated, by the user, SAX is based on the idea of events and leaves the whole data manipulation (and eventually building a document tree) to the user. (Not to mention of course that having just one way to do this would be rather boring -- a bit like having only one type of coffee and not being able to enjoy such delicacies as Cappuccino, or a Mocha Latte.)