Bonjour,
Suite à un projet scolaire en C++, je dois utiliser TinyXML2. Je me suis donc documenté sur la librairie afin de mener à bien ma tâche. Mais je rencontre un probléme trés simple : il n'arrive pas à naviguer dans mon XML.
Voici le XML :
J'ai checké sur le W3C si le XML est bien valide et c'est bien le cas. Il semblerait donc que le probléme ne vienne pas de là.
Code : 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 <Game> <Window> <width>600</width> <height>500</height> <background>joliBackgroundDeGael.jpg</background> </Window> <Square> <Mario> <size> <width>30</width> <height>15</height> </size> <speedPerFrame>5</speedPerFrame> <font> <stop>stopMario.jpg</stop> <run>runMario.jpg</run> <jump>jumpMario.jpg</jump> </font> </Mario> </Square> </Game>
Je penche donc vers un soucis de code que voici :
Mais le soucis c'est que dans le ErrorID, TinyXML me renvoie 0 comme s'il n'y avait aucune erreur.
Code : 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
35 #include "caracteristique.h" #include <iostream> #include <direct.h> #define GetCurrentDir _getcwd using namespace tinyxml2; const char* parseXML::path = "XMLType.xml"; void parseXML::getDoc() { this->doc.LoadFile(this->path); if (this->doc.ErrorID() != 0) { printf("load file=[%s] failed\n", this->doc.GetErrorStr1()); printf("load file=[%s] failed\n", this->doc.GetErrorStr2()); } } int parseXML::getWindowHeight() { if (this->doc.Error()) this->getDoc(); XMLElement *root = this->doc.RootElement(); if (!root) { XMLElement *window = root->FirstChildElement("Window"); if (!window) std::cout << window->FirstChildElement("height")->FirstChild()->ToText() << std::endl; } return 0; }
Le seul soucis que je vois est que le charBuffer me renvoie :
De plus les attributs _errorStr1 et _errorStr2 indiquent "Bad Ptr", mais je ne sais pas si c'est normal du fait que ErrorID soit à 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Element was not closed. Error processing resource 'file:///C:/Users/mbou/AppData/Local/Temp/VSD1.tmp.XML'. Line 1, Positio... <Game
En dehors du message d'erreur que j'obtiens en faisant un XMLVisualiser sous VS2010, je n'ai rien de particulier qui puisse m'aider.
J'ai fait beaucoup de recherche sur le Net et personne ne semble rencontrer ce soucis.
Merci d'avance pour votre aide.
Partager