libxml2 it's a small and nice XML parser you can link to you programs. It will parse an XML file and build an in-memory tree with its content which you can access with a DOM like API. That's much more easier than using a simple event oriented parser (such as expat).
In addition it fully supports XML namespaces, XPath, XInclude, and most of XPointer and XML Schema.
It's been developed for use in the Gnome project, but it can be used by anyone. You can get it at http://xmlsoft.org/ .