Bonjour,
j'essaye de modifier un fichier XML avec la bibliothèque tinyXML mais j'ai des erreurs de violation Access quand j'exécute le programme.
Je suis novice en C++ et en XML (j'ai commencer il y a peine 1 jour). Je suis partie du tutoriel de khayyam90 (http://khayyam.developpez.com/articles/cpp/tinyxml/)
Mon bout de code est ci-dessous :
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 //construction du chemin complet du fichier sprintf(sXmlFileWay,"%s%s",sRepertoireDeTravail,tabsFileNames[i]); //chargement du fichier xml TiXmlDocument doc(sXmlFileWay); if(!doc.LoadFile()) { sprintf(sMessageError,"erreur chargement fichier %s.\n error n°%i : %s",sXmlFileWay,doc.ErrorId(),doc.ErrorDesc()); return 1; } //recherche des balise à modifer + modification TiXmlHandle hdl(&doc); //init de l'élément dans la section XML_InfosGeneral TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement().FirstChildElement().FirstChildElement().Element(); //on test si on lit correctement la section application sTempo=string(elem->Attribute("application")); doc.SaveFile(sXmlFileWay);
mon fichier xml est du format suivant :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?xml version="1.0" encoding="UTF-8"?> <Trace> <XML_InfosGenerales> <application>Lexia</application> <formatSortie>11</formatSortie> <typeFichier>12</typeFichier> <version>1.1</version> </XML_InfosGenerales> ...
==> ce que je veux faire, c'est changer le "formatSortie" en 12 (par exemple) et de même pour "typeFichier" et "version".
Dans mon programme, j'ai un access violation sur la ligne :
"sTempo=string(elem->Attribute("application"));"
Ce problème ne se produit pas si je test mon programme avec le fichier xml du tutoriel (le fichier XML que j'utilise ne peux être modifier que par mon programme).
J'espère que je suis assez clair et d'avance merci pour vos réponses suggestions.
Partager