A simple C XML parser

Solution 1:

Libxml2

Solution 2:

The Expat parser is the best I've come across - I use it in my C++ code in preference to the various C++ parsers - but it is written in C. Very easy to use and embed in your application. So I don't see why in your question you say:

(other than lib eXpat)

do you have something against it?

Solution 3:

How about Mini-XML? It's lightweight, works with gcc, is ANSI-C compatible...

http://www.minixml.org/index.php

According to the documentation, to search for specific nodes would be as simple as:

/* Find the first "a" element */
    node = mxmlFindElement(tree, tree, "a",
                           NULL, NULL,
                           MXML_DESCEND);

Once you get the node, you can manipulate it according to your requirements.

Solution 4:

If C++ is OK then you might try TinyXML. I've been using it for a few years and it works nicely.