e-xml: Add C api

Makes it easier to use with C projects (especially those that don't allow C++ code)
I don't want to take all credit since it is just `parse.cpp` adapted to the C api.

I could do that but the change should go into parse.cpp too. Guess it is better to do that as a separate commit ?