Expat
Fast streaming XML parser written in C99 with >90% test coverage
...This means that you register handlers with the parser before starting the parse. These handlers are called when the parser discovers the associated structures in the document being parsed. A start tag is an example of the kind of structure for which you may register handlers.