Mike - EMAIL IGNORED writes:
On Wed, 03 Jan 2007 13:30:18 -0500, Dmitriy Kropivnitskiy wrote:
> James Kosin wrote:
[...]
>>
>> An XML parser is more or less a text parser.
>> Usually best to write your own. It is very simple design and
>> straightforward.
>
> Yikes! This is a very bad suggestion. The idea behind standards like XML is to have
standard tools to work with them, thus eliminating repeating the
> same mistakes in every implementation. You don't go writing a new regular
expression parser every time you need regexes do you? To answer the original
> email, there are a few XML parsers in common use out there. The main ones for UNIX
are probably libxml and expat.
>
I agree with both of the quoted sentiments. I took a look at one of
the recommended parsers, and decided that it would take a while to
install it and figure out how to use it. However, since:
1) I already have a well tested general token parser;
2) my present XML requirement is close to the most trivial
possible;
I parsed it directly, with numerous application-specific tests
for validity. In a couple of hours, it is tested and running.
However, for general application, the use of software conforming
standards is certainly preferable. There seems to be a number of
choices.
How to choose?
Well, I don't know what you evaluated, but late last year I had to through
together a C++ XML parser. I remember looking at libxml a long time ago, so
this time around I looked at it again.
I found that the current version of libxml2 had a new parsing API that was
laughably easy to use directly, or wrap into a C++ class. It was laughably
easy for me to wrap it up into a class, and get a robust parser with full
namespace support. I could refer to the individual nodes and attributes by
uri/name pair directly, without dealing with the headaches of implementing
and tracking namespaces.