QDomDocument.setContent und Encoding

Alles rund um die Programmierung mit Qt
Antworten
flummi
Beiträge: 11
Registriert: 9. Oktober 2007 12:54

QDomDocument.setContent und Encoding

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
flummi
Beiträge: 11
Registriert: 9. Oktober 2007 12:54

Beitrag 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!
Antworten