tags:

views:

631

answers:

5

What XML libraries are out there, which are minimal, easy to use, come with little dependencies (ideally none), can be linked statically and come with a liberal license? So far, I've been a pretty happy user of TinyXML, but I'm curious what alternatives I have missed so far.

+6  A: 

expat is a very fast C XML parser (although a C++ wrapper exists) that's widely used in many open-source projects. If I remember correctly, it has very few dependencies, and it's licensed under the very liberal MIT License.

igowen
Sounds good, gotta take a look at it, especially how difficult it is to build it.
Anteru
A: 

There's one called libxml2.

There's also a Windows-only solution, a COM library that's part of the O/S, called msxml.

ChrisW
+3  A: 

FWIW there is also a version of TinyXML with a more C++-like interface, called ticpp.

Rob
Yeah, ticpp FTW!
MattyT
A: 

In "what’s the easiest way to generate xml in c++?" I wrote a comment that lists a few C++ XML libraries

TinyXML++ (ticpp) was, IMHO, the most appropriate for a small, easy to use XML library in C++.

MattyT
+3  A: 

I recommend rapidxml. It's an order of magnitude smaller than tinyxml, and doesn't choke on doctypes like tinyxml does.

If you need entity support or anything advanced, forget about static linking and use expat or libxml2.

Jeff M