Seite 1 von 1

XML-Dokument in Unicode speichern?

Verfasst: 19. Juli 2010 12:58
von qrk123
Hallo,

ich möchte eine XMLDatei lesen, verändern und wieder speichern. Funktioniert gut, bis auf die Unicodezeichen, die nach dem Speichern nicht mehr angezeigt werden. Also muss die Datei im letzten Schritt auch als Unicode abgespeichert werden. Wird sie im Moment noch nicht.

Bisher habe ich ein wenig die Doku gelesen. Ich habe zwei Ansätze gefunden, weiß aber nicht wirklich wie man diese jetzt benutzt.

1) QFile::EncoderFn Scheinbar kann man hier der QFile direkt eine encoderfunciton angeben. Allerdings sind in der Doku hierzu keine Funktionen angegeben, was mich nicht weiterführt.

2) String::fromUTF() Hier kann man scheinbar auf den Textstream zugreifen, wie man die Funktion nutzt weiß ich aber auch nicht, da sie *Char Argumente fordert und meine String des QTextStreams nicht akzeptiert werden. oder brauche ich hier String::toUtf8? das gibt QByteArray zurück. Bekomme ich das dann in den QTextStream?

Da mich die Doku nicht weiterführt hoffe ich hier einen Tipp zu bekommen.

vielen Dank

Verfasst: 19. Juli 2010 13:09
von franzf
Verwende doch die Qt-Klaseen. Entweder gleich mit QDomDocument und Konsorten, oder halt den QXmlStreamReader/Writer.

Verfasst: 19. Juli 2010 13:17
von qrk123
Ich nutze bereits ein QDomDocument, kann ich das selbst auf unicode umstellen? hab dazu nichts in der Doku gefunden....

Verfasst: 19. Juli 2010 13:22
von franzf
qrk123 hat geschrieben:Ich nutze bereits ein QDomDocument, kann ich das selbst auf unicode umstellen? hab dazu nichts in der Doku gefunden....

Code: Alles auswählen

// doc ist dein QDomDocument
// outFile dein QFile
QTextStream stream(&outFile);
doc.save(stream, 4);
QDomNode::save() (QDomDocument erbt ja von QDomNode) sagt dir auch, wie das Encoding gewählt wird, du musst dich um absolut nix mehr kümmern :)

Verfasst: 19. Juli 2010 13:27
von qrk123
wow, vielen Dank. Hat grad auf Anhieb funktioniert :)