- • Event-driven (one tag at time) parsers, e.g. expat.
These are good for big XML document and you can filter
the input, but needs more code and parser state handling.
- • Parse everything to a DOM XML tree, e.g. Gnome's
libxml. All the parsing is done for you, but it can be slower
for big files. It also uses more memory and the tag filtering
needs to be done post-facto.
- • Parse-on-demand parsers (aka "pull parsers"), that internally
behave like the event-driven ones, but return a branch of the DOM tree
for the node (or nodes) requested.