I have written sxmlc as a lightweight, potentially embeddable XML parser in C. See my answer on a related questionmy answer on a related question (also linked by @PPC-Coder).
You can use it as DOM or SAX (to save memory), to parse either files or memory buffers.