Bonjour à tous,
Je me permet de vous écrire car malgré mes recherches dans ce forum, je ne trouve toujours pas mon bonheur. Je souhaiterais tout simplement lire et écrire dans un fichier xml. J'utilise sous VC++ 6.0 la libraire de tinyXML mais je rencontre une erreur sérieuse du type XML.exe a rencontré un problème et doit fermer.
Tout d'abord voiçi mon fichier XML (tout simple):
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="ISO-8859-1"?> <lstUsers> <user name="toto" pass="13" indice="1"/> <user name="tata" pass="142" indice="2"/> <user name="titi" pass="azerty" indice="1"/> </lstUsers>
et voici mon code c++:
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 TiXmlDocument doc("users.xml"); if(!doc.LoadFile()){ cerr << "erreur lors du chargement" << endl; cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl; return 1; } list<user> user_list; TiXmlHandle hdl(&doc); TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement().Element(); if(!elem){ cerr << "le noeud à atteindre n'existe pas" << endl; return 2; } user cl; while (elem){ cl.name = elem->Attribute("name"); cl.pass = elem->Attribute("pass"); elem->QueryIntAttribute("indice", &cl.droits); user_list.push_back(cl); elem = elem->NextSiblingElement(); // iteration } list<user>::iterator i; for(i=user_list.begin(); i!=user_list.end(); i++) cout << i->name << " " << i->pass << " " << i->droits << endl; return 0; }
J'ai beau lire et relire les infos du liens suivant http://khayyam.developpez.com/articles/cpp/tinyxml/, rien à faire !!!
Ce serait sympa si quelqu'un avait la solution. Merci par avance pour vos réponse.
Salutations.
Partager