bonjour,
voila depuis quelques temps je me suis mis sur de l'xml et cpp, je me suis lancé sur tinyxml vu que je cherche pour un premier temps la simplicite et comprehension.
donc, je m'attaque a tinyxml, et ho à ma grande surprise, apparement soit je gère mal, soit y a un gros probleme avec cette lib.
j'explique:
voici mon fichier xml:
BASE est le root element,
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 <?xml version="1.0"?> <BASE> <FIRSTBASE> <FIRSTCHILD NAME="FirstChild" VALUE="3"> <ITEM NAME="FirstChild_Item">Test</ITEM> </FIRSTCHILD> <OTHERCHILD NAME="OtherChild" VALUE="4" NUMBER="1"> <ITEM NAME="OtherChild_Item">Test</ITEM> </OTHERCHILD> <ANOTHERCHILD NAME="OtherChild" VALUE="2" NUMBER="2"> <ITEM NAME="OtherChild_Item2">Test</ITEM> </ANOTHERCHILD> </FIRSTBASE> <SECONDBASE> <FIRSTCHILD NAME="FirstChild" VALUE="3"> <ITEM NAME="FirstChild_Item">Test</ITEM> </FIRSTCHILD> <OTHERCHILD NAME="OtherChild" VALUE="4" NUMBER="1"> <ITEM NAME="OtherChild_Item">Test</ITEM> </OTHERCHILD> <ANOTHERCHILD NAME="OtherChild" VALUE="2" NUMBER="2"> <ITEM NAME="OtherChild_Item2">Test</ITEM> </ANOTHERCHILD> </SECONDBASE> </BASE>
FIRSTBASE est un child de BASE
FIRSTCHILD est un child de FIRSTBASE
ITEM est un child de FIRSTCHILD
OTHERCHILD est un child de FIRSTBASE
ITEM est un child de OTHERCHILD
etc...
correct?
pourtant avec tinyxml, il me dit que otherchild est un child de firstchild, allez savoir pourquoi...
voici mon code:
qui me retourne:
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 TiXmlDocument doc( "test.xml" ); doc.LoadFile(); TiXmlNode* node = doc.RootElement(); if( node != 0 && node->ToElement() ) { cout << "Root element exists. It's value is: " << node->Value() << endl; } TiXmlElement *NPC = node->FirstChild()->ToElement(); if( NPC != 0 ) { cout << "First child exists. It's value is: " << NPC->Value() << endl; } TiXmlElement *Instance = NPC->FirstChild()->ToElement(); if( Instance != 0 ) { cout << "First instance found. It's value is: " << Instance->Value() << endl; } Instance = NPC->FirstChild()->NextSibling()->ToElement(); if( Instance != 0 ) { cout << "Child instance found. It's value is: " << Instance->Value() << endl; } Instance = NPC->FirstChild()->NextSibling()->NextSibling()->ToElement(); if( Instance != 0 ) { cout << "Child instance found. It's value is: " << Instance->Value() << endl; }
vous trouver ca normal qu'il prend OTHERCHILD comme un child de FIRSTCHILD et ainsi de suite?Root element exists. It's value is: BASE
First child exists. It's value is: FIRSTBASE
First instance found. It's value is: FIRSTCHILD
Child instance found. It's value is: OTHERCHILD
Child instance found. It's value is: ANOTHERCHILD
ou c'est moi qui m'y prend mal?
Partager