QXmlStreamWriter/QStringList
Je relance le fil de discussion ici car vous avez l'air de bien connaître Qt chezr Gojir4 aha.
Cette fois-ci j'ai un soucis dans l'écriture de mon fichier XML. Mais je pense que le soucis vient de la façon dont je récupère mes QString dans mes QStringList.
J'ai deux QStringList, l'une contenant les champs (ce que nous avons fait précédemment), et une autre contenant les valeurs de ces champs.
Voici le code correspondant :
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
| void mafenetre::generateXML(){
QXmlStreamWriter writer;
QFile file("donnees.xml");
if (!file.open(QIODevice::WriteOnly))
{
QMessageBox::warning(0, "Error!", "Error opening file");
}
else
{
writer.setDevice(&file);
writer.setAutoFormatting(true);
writer.setAutoFormattingIndent(true);
writer.writeStartDocument("4");
QString str; str.setNum(maliste2.length());
qDebug() << str;
for ( int i = 0 ; i < maliste.length() ; i++){
qDebug() << str.setNum(i);
if(maliste.value(i) == ";"){
writer.writeStartElement(maliste2.value(i));
}
else{
writer.writeAttribute(maliste2.value(i),maliste.value(i));
}
writer.writeEndElement();
}
writer.writeEndElement();
writer.writeEndDocument();
}
} |
Cela me genere une erreur Runtime, qui est la suivante : "ASSERT: "d->inStartElement" in file xml\qxmlstream.cpp, line 3413".
Ce que je ne comprend pas, c'est que lorsque j'affiche directement mes QStringList après leurs créations, élément par élément dans des QMessageBox, en parcourant de la même façon mes deux listes, il n'y a aucun problème. Alors que la, j'ai ce soucis la.
Le soucis est du à la QStringList "maliste" et pas non "maliste2", je le sais car quand j'enlève le "maliste" de la boucle for, je n'ai plus ce soucis (en écrivant bêtement que des start elements avec maliste2 par exemple). C'est à partir de i=1 que le soucis arrive..
Merci d'avance :aie: