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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
void LireXML::lirefichier(string chemin)
{
TiXmlDocument doc(chemin.c_str());
if(!doc.LoadFile())
{
cerr << "erreur lors du chargement du fichier" << endl;
}
else
{
TiXmlElement *element(0);
TiXmlHandle handl(&doc);
element = handl.FirstChildElement().FirstChildElement().Element();
if(!element)
{
cerr << "le noeud à atteindre n'existe pas" << endl;
}
else
LireXML::parcourir(element);
}
}
int LireXML::parcourir(TiXmlElement *elt)
{
string att;
if (!elt)
return 0;
else
{
att = elt->Attribute("id"); //recuperer l'id
if (att.substr(0,4) == "path")
{
//traitement ajouter les point dans la liste pour construire un chemin
cout<<elt->Attribute("id");
elt = elt->NextSiblingElement(); //element suivant
parcourir(elt);
}
else
{
elt = elt->FirstChildElement(); //acceder au fils
parcourir(elt);
elt = elt->NextSiblingElement(); //acceder a l'element suivant du meme niveau
parcourir(elt);
}
}
} |
Partager