Lecture d'un fichier XML et recherche
Bonjour ,
voila j'ai un fichier xml dans lequel je lit des paramètre qui vont correspondre à différents boutons !
Or j'aimerais pour certains boutons ajouter un profil ! le fichier xml le voici
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<Villes>
<Zones>
<nomZone>Paris</nomZone>
<villesZone>
<nom>Paris Est</nom>
<prof>C:/ott.exe</prof>
</villesZone>
<villesZone>
<nom>Paris Est</nom>
<prof>C:/ip..exe</prof>
</villesZone>
</Zones>
</Villes> |
Le problème que j'ai c'est lorsque que je choisi une ville de la zone ça m'exécute le mauvais prof
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 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
| if(racine.tagName() == "Zones")
{
// On récupère le premier enfant de l'élément Zones c'est a dire <nomZone>
QDomElement unElement = racine.firstChildElement();
// On parcourt tous les enfants de l'élément <Zones>
while(!unElement.isNull())
{
// Si on pointe sur un élément de type <villesZones> dans la partie <Zones>
if(unElement.tagName() == "villesZone")
{
QDomElement unElementVilleZone = unElement.firstChildElement();
// On parcourt tous les enfants de l'élément <villesZones>
while(!unElementVilleZone.isNull())
{
// Si l'enfant de l'élément site est l'élément <nom>
if(unElementVilleZone.tagName() == "nom")
{
// On récupère le texte contenu dans la balise <nom>
str_NomVilleZone = unElementVilleZone.text();
strl_listeVilleZone.append(str_NomVilleZone);
}
if(unElementVilleZone.tagName()== "prof"){
str_ExecVille = unElementVilleZone.text();
}
unElementVilleZone = unElementVilleZone.nextSiblingElement();
}
set_ListeProfil_str(strl_listeProfils);
unElementVilleZone = unElementVilleZone.nextSiblingElement();
}
}
// Permet d'aller au prochain enfant de <site> et de poursuivre la boucle
unElement = unElement.nextSiblingElement();
}
// création d'une Zone contenant plusieurs villes sur la carte
btn_Zone= new QPushButton(this);
btn_Zone->resize(50,50);
btn_Zone->setText(str_NomZone);
btn_Zone->setToolTip(str_NomZone);
btn_Zone->move(str_CoordxZone.toInt(),str_CoordyZone.toInt());
set_ListeVilles_str(strl_listeVilleZone);
QSignalMapper *signalMapper2 = new QSignalMapper(this);
QObject::connect(signalMapper2, SIGNAL(mapped(QString)), this, SLOT(afficher_ListeVilles(QString)));
//Mappage, puis connexion du signal au mapper
signalMapper2->setMapping(btn_Zone,str_ExecVilleZone);
QObject::connect(btn_Zone, SIGNAL(clicked()), signalMapper2, SLOT(map()));
}
// On va à l'élément fils de <root> suivant
racine = racine.nextSiblingElement();
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| void Projet::afficher_ListeVilles(QString exec_VilleZone){
bool ok;
QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),
tr("Villes Zone"), get_ListeVilles_str(), 0, false, &ok);
if (ok && !item.isEmpty()){
QMessageBox::information(this, "Coix de la ville appartenant à une zone", "La ville choisie est : "+item);
process_Site->startDetached(exec_VilleZone);
}
} |
je bloque depuis des jours ! merci par avance pour l'aide !