Einfügen in ein XML-File

Alles rund um die Programmierung mit Qt
Antworten
theheader
Beiträge: 7
Registriert: 1. Dezember 2009 01:00

Einfügen in ein XML-File

Beitrag von theheader »

Hey

Ich habe folgendes XML-File:

Code: Alles auswählen

<?xml version="1.0" encoding="..."?>
<buddylist>
<buddy>
...
</buddy>
<buddy>
...
</budy>
</buddylist>
Ich möchte nun das File auslesen, gleichzeitig aber am Ende einige neue <buddy>-Elemente anfügen. Dazu habe ich folgenden Code, um ins File zu schreiben (der Teil, mit dem ich auslese, hab ich weggelassen, denn der funktioniert einwandfrei.)
QDomDocument doc;
if(!doc.setContent(&file, false, &errorStr, &errorLine, &errorColumn)) {
std::cerr << "Error: Parse error at line " << errorLine << ", "
<< "column " << errorColumn << ": "
<< qPrintable(errorStr) << std::endl;
return false;
}
QDomElement root = doc.documentElement();
QDomElement mainelem = doc.createElement("buddy");
QDomElement idelem = doc.createElement("Test");
QDomElement nameelem = doc.createElement("name");
mainelem.appendChild(idelem);
mainelem.appendChild(nameelem);
root.appendChild(mainelem);
QTextStream out(&file);
doc.save(out, 0);
Im Moment wird im xml-File am Ende das ganze Dokument mit den Modifikationen angefügt, jedoch wird das alte belassen! Das ergibt dann etwas in der Art von:

Code: Alles auswählen

<?xml ...?>
<buddylist>
...
</buddylist>
<?xml ...?>
<buddylist>
... mit modifizierten Elementen
</buddylist>
Kann mir jemand erklären, wieso das ganze kopiert und dann eingefügt wird??

gruss und danke
theheader
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du verwendest das selbe 'file' nochmal, ohne es zu schließen.
theheader
Beiträge: 7
Registriert: 1. Dezember 2009 01:00

Beitrag von theheader »

Danke vielmals!!
Antworten