Xerces C++ - Charger, lire et enregistrer, les solutions de rechange?

Je suis à la recherche d'un tutoriel pour charger un fichier XML, le lire, le modifier, et enfin l'enregistrer avec le C++. Je suis sous Linux Ubuntu et essayé d'utiliser Xerces. Avec Google, et beaucoup de temps, je n'ai pu charger un Fichier XML:

#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/sax/HandlerBase.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <iostream>
using namespace std;
using namespace xercesc;
int main (int argc, char* args[]) {
try {
XMLPlatformUtils::Initialize();
}
catch (const XMLException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Error during initialization! :\n"
<< message << "\n";
XMLString::release(&message);
return 1;
}
XercesDOMParser* parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoNamespaces(true);    //optional
ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase();
parser->setErrorHandler(errHandler);
const char* xmlFile = "demo.xml";
try {
parser->parse(xmlFile);
}
catch (const XMLException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n"
<< message << "\n";
XMLString::release(&message);
return -1;
}
catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n"
<< message << "\n";
XMLString::release(&message);
return -1;
}
catch (...) {
cout << "Unexpected Exception \n" ;
return -1;
}
DOMNode* docRootNode;
// DOMNode* aNode;
DOMDocument* doc;
doc = parser->getDocument();
docRootNode = doc->getDocumentElement();
cout << docRootNode->getAttributes() << endl; //returns Hex
delete parser;
delete errHandler;
return 0;
}

Comment je peux lire un de manipuler le fichier XML et enfin l'enregistrer? Est-il d'autres bibliothèques? (J'ai essayé tinyxml mais les fichiers renvoie des erreurs, quand je veux compiler)

J'espère que vous utilisez le nouveau Xerces 3.* l'ancien 2.7/2.8 est d'avoir des fuites de mémoire tous sur la place

OriginalL'auteur | 2010-01-24