The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

C++ XML DOM Parser

Currently, we are using MS XMLDocument component to parse and analyze XML documents. We want to change this to some open source C++ libraries, any suggestions? Thanks
Dan Kong Send private email
Saturday, May 06, 2006
Apache Xerces-C DOM parser is a good Open Source alternative to MSXML parser, but it lacks inbuilt support for XPath and XSLT. If your application extensively relies on XPath queries, then Xalan-C from Apache should suffice.

Both the packages suffer from skimpy API documentation :(
Ashwin Send private email
Saturday, May 06, 2006
Well depending on your needs pugXML might just be what you are after. See: and related articles that us it. I use it extensively.
Neville Franks Send private email
Saturday, May 06, 2006
We've used Xerces/Xalan and found it to be slow, buggy and a real PITA as far as backwards compatability goes (every new release is a lot of work, as API's and object models change).

We've recently switched to libxml2 ( ) on linux, and have been quite pleased with its speed, stability, and functionality.

This may not matter to you (it appears you're working on Windows), but libxml2 is part of many (e.g., RedHat) Linux distros, and so is often installed by default (since it is used by Gnome).

P.S.  Make sure you use libxml2, not the earlier libxml.

P.P.S.  We've been happy with the MS XML parser on Windows, although we're thinking of switching to libxml2 for Windows simply to have a single library to program against.
BillT Send private email
Saturday, May 06, 2006
We use CMarkup it is windows only.
Our main requirement was for speed, reading multi Mb xml files for a cad app.

It doesn't do XSLT / XPath - we use msxml for that.
Martin Send private email
Monday, May 08, 2006
I tried Xerces on a new project 3 years ago and gave up on it. There were issues with thread safety (I hear it's better now) and I noticed several bugs in handling CDATA. I switched to MSXML and it was way better. MSXML was like a breath of fresh air.
MBJ Send private email
Monday, May 08, 2006
BTW, the libxml2 home page ( ) has been down for some reason (?!), but is now back up.
BillT Send private email
Tuesday, May 09, 2006
+1 on Xerces and its Apache cousins. Use them all the time. Sometimes a bit of head scratching is needed on the documentation but I've never come across a real bug.
dot for this one
Tuesday, May 09, 2006
>  libxml2

I found libxml2 to pretty easy to work with.
son of parnas
Tuesday, May 09, 2006
We've been using Expat for our basic XML parsing needs -- tried libxml but found the docs pretty painful and harder to integrate into our Visual Studio based build process.

Wednesday, May 10, 2006
Another vote for libxml2.  It's been wonderful.  The implementers really understood how to make accessing XML easy.  Because it's written in C it's also easy to take your logic with you if you have to port to another language.  I've been using the same logic in Delphi and C quite happily on Windows.
Clay Dowling Send private email
Wednesday, May 10, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz