TinyXML - Accéder à un sous ensemble d'un sous ensemble
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:
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 :
Code:
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
} |
Le problème est qu'à chaque itérations le parcours reprends depuis le début. Voici ce que j'obtiens en sortie :
Code:
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 |
Ce que je souaiterais obtenir est tout simplement :
Code:
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 |
Merci d'avance pour votre aide ! :)
Vincent