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 55 56 57 58 59 60 61 62 63 64
| TiXmlDocument doc( "Test2.xml" );
doc.LoadFile();
class step{
public:
string name;
bool initialStep, negated;
int localId, refLocalId;
};
class transition{
public:
int localId, refLocalId;
};
list<step> step_list;
list<transition> transition_list;
TiXmlHandle hdl(&doc);
TiXmlElement *elem = hdl.FirstChildElement().FirstChildElement().FirstChildElement().FirstChildElement().FirstChildElement().Element();
step cl;
if(!elem){
cerr << "le noeud à atteindre n'existe pas" << endl;
return 2;
}
while (elem){
cl.name = elem->Attribute("name");
cl.pass = elem->Attribute("initialStep");
cl.pass = elem->Attribute("negated");
elem->QueryIntAttribute("localId", &cl.droits);
elem->QueryIntAttribute("refLocalId", &cl.droits);
step_list.push_back(cl);
elem = elem->NextSiblingElement(); // iteration
}
transition cl;
if(!elem){
cerr << "le noeud à atteindre n'existe pas" << endl;
return 2;
}
endif
while (elem){
elem->QueryIntAttribute("localId", &cl.droits);
elem->QueryIntAttribute("refLocalId", &cl.droits);
transition_list.push_back(cl);
elem = elem->NextSiblingElement(); // iteration
}
list<step>::iterator i;
for(i=step_list.begin(); i!=step_list.end(); i++)
cout << i->name << " " << i->initialStep << " " << i->negated << " " << i->localId << " " << i->refLocalId << endl;
list<transition>::iterator i;
for(i=transition_list.begin(); i!=transition_list.end(); i++)
cout << i->localId << " " << i->refLocalId << endl;
{ |
Partager