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:
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>
BASE est le root element,
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:
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;
	}
qui me retourne:
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
vous trouver ca normal qu'il prend OTHERCHILD comme un child de FIRSTCHILD et ainsi de suite?

ou c'est moi qui m'y prend mal?