Seite 1 von 1

QDomDocument.setContent und Encoding

Verfasst: 10. Oktober 2007 18:15
von flummi
Hallo zusammen,

in der Dokumentation steht zum QDomDocument bei der Funktion setContent(..), dass sie versucht, dass Encoding zu bestimmen:

[...] It tries to detect the encoding of the document as required by the XML specification. [...]

Ich möchte das Encoding aber explizit setzen, da ich weiss, dass das XML-Dokument in ISO-8859-1 vorliegen muss. Wie dies geht, steht hier leider nicht.

Folgenden Code habe ich zum parsen des Dokuments (nach Beispiel):

Code: Alles auswählen

QFile file("datei.xml");
QDomDocument aDoc;
if (!file.open(QIODevice::ReadOnly))
{
  cout << "Fehler" << endl;
}
if (!aDoc.setContent(&file)) 
{
  cout << "Fehler" << endl;
}
Meine Frage: Wie kann ich hier dem QFile oder QDomDocument Objekt mitteilen, dass das XML-File in ISO-8859-1 vorliegt, damit dass Encoding stimmt?

Vielen Dank und Grüße,
Flummi

Verfasst: 12. Oktober 2007 09:06
von Christian81
Ich würde sagen einfach indem die Datei das richtige

Code: Alles auswählen

<?xml version="1.0" encoding="iso-8859-1"?>
enthält...

Und falls dies nicht der Fall ist, ist die xml-Datei falsch. Ggf. kann man ja dann die Datei komplett in ein QByteArray lesen und das obige einfügen.

Verfasst: 15. Oktober 2007 10:40
von flummi
Leider ist in den XML-Dateien das Encoding nicht explicit angegeben. Stattdessen soll davon ausgegangen werden, dass das Encoding immer ISO-8859-1 ist. Gib es keine direkte Möglichkeit, dies Qt beim Parsen mitzuteilen?

Besten Dank!