libxml++ is a C++ interface for working with XML files. It uses libxml2 to parse and write the actual XML files. It has a simple and complete API. (I packaged this so I can now build Passepartout which I am also packaging.)