If it takes too much time to put in place a program relying on a SAX parser or a DOM parser, the best choice is libxml2, probably. Otherwise... What about using libparsifal [1], nunnimcax [2] or libnxml [3]? The latter isn't very fresh or the most efficient: has the only function of marshaling xml to C structs. That may be a comfortable way to deal with xml. For hacks and prototypes (I'm currently struggling with getting done an approach to xml stuff, primarily rss but trying to tackle other means of http news, that would comply with my day-to-day needs) I stepped on this toolkit called ltxml2 [4], which draws in rxp [5] as dependency. The commands provided by this library, ignoring some bugs (like lxgrep which _always_ exits with zero), are imho better in managing xml inside shell scripts, than the toolchains based on libxml2.
AFAIK, when we talk about writing C code that deals with XML, libxml2 it's the best library. If you are in a f*cked up situation working with really (really really) meager hardware and having to deal with xml, using a standalone SAX parser would take a lot of time spent in drafting, rewarded with remarkable performance. [1] http://www.saunalahti.fi/~samiuus/toni/xmlproc/ [2] http://www.nunnisoft.ch/nunnimcax/en/home.jsp [3] http://www.autistici.org/bakunin/libnxml/doc/ [4] http://www.ltg.ed.ac.uk/software/ltxml2 [5] http://www.ltg.ed.ac.uk/software/rxp -- Teodoro Santoni