Bonjour à vous tous les Développeurs !
J'essayes tant bien que mal d'accéder à un sous ensemble d'un sous ensemble d’élément eux même dans un ensemble d'élément.
Pour illustrer voici un extrait de mon XML :
Code xml : 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 <?xml version="1.0" encoding="ISO-8859-1"?> <Applications> <Application nom="powerpnt.exe"> <Maccros type="ouvrir"> <Macro touche="VK_F5"/> </Maccros> <Maccros type="fermer"> <Macro touche="VK_ESCAPE"/> </Maccros> </Application> <Application nom="acrord32.exe"> <Maccros type="ouvrir"> <Macro touche="VK_CONTROL"/> <Macro touche="l"/> </Maccros> <Maccros type="fermer"> <Macro touche="VK_ESCAPE"/> </Maccros> </Application> <Application nom="chrome.exe"> <Maccros type="ouvrir"> <Macro touche="VK_CONTROL"/> <Macro touche="t"/> </Maccros> <Maccros type="fermer"> <Macro touche="VK_CONTROL"/> <Macro touche="VK_F4"/> </Maccros> </Application> </listeApplications>
Voici le code que j'applique :
Le problème est qu'à chaque itérations le parcours reprends depuis le début. Voici ce que j'obtiens en sortie :
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 TiXmlHandle hdl(&doc); TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement("Application").Element(); if(!elem) return "The node is missing"; while (elem) { cout << elem->Value() << " = " << elem->Attribute("nom"); TiXmlElement *sousElem = elem->FirstChildElement(); while(sousElem) { cout << "\t" << sousElem->Value() + " = " + sousElem->Attribute("type")); sousElem = sousElem->NextSiblingElement(); } elem = elem->NextSiblingElement(); // iteration }
Ce que je souaiterais obtenir est tout simplement :
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 Nom : Application = powerpnt.exe Maccros = ouvrir Maccros = fermer Nom : Application = acrord32.exe Maccros = ouvrir Maccros = fermer Maccros = ouvrir Maccros = fermer Nom : Application = chrome.exe Maccros = ouvrir Maccros = fermer Maccros = ouvrir Maccros = fermer Maccros = ouvrir Maccros = fermer
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Nom : Application = powerpnt.exe Maccros = ouvrir Maccros = fermer Nom : Application = acrord32.exe Maccros = ouvrir Maccros = fermer Nom : Application = chrome.exe Maccros = ouvrir Maccros = fermer
Vincent
Partager