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.