XML Zeichensatz in QListWidget anzeigen
-
XML Zeichensatz in QListWidget anzeigen
Hi,
ich möchte mir die Codierung einer XML-Datei in einem QListWidget anzeigen lassen.
file ist ein QFile.
Eigentlich müsste es doch so funktionieren:file->open(QIODevice::ReadOnly); QXmlStreamReader *xmlReader = new QXmlStreamReader(file); ui->listWidget->addItem(xmlReader->documentEncoding().toString()); //Es wird aber nichts angezeigt
So funktioniert es:
file->open(QIODevice::ReadOnly); QXmlStreamReader *xmlReader = new QXmlStreamReader(file); xmlReader->readNext(); //Nur dann wird der die Codierung angezeigt ui->listWidget->addItem(xmlReader->documentEncoding().toString());
Kann jemand kurz erklären warum?
-
@theAnfänger77 sagte in XML Zeichensatz in QListWidget anzeigen:
Eigentlich müsste es doch so funktionieren:
Warum?
-
Weil
documentEncoding()
kein Eintrag im XML Dokument ist.
-
@theAnfänger77 sagte in XML Zeichensatz in QListWidget anzeigen:
Weil
documentEncoding()
kein Eintrag im XML Dokument ist.
Es fällt vom Himmel?
-
Ok. Es scheint bei jedem XML Dokument der erste Eintrag zu sein!
-
Warum erstellst du den StreamReader auf dem Heap?
Das ist ein Automat. Du musst immer weiter lesen und hast dann jeweils den aktuellen Zustand. Bezieht sich wohl auch auf das documentEncoding.
-
Hab mir nichts dabei gedacht als ich den StreamReader auf dem Heap erzeugt habe.
-
Du solltest dir immer was denken, wenn du irgendwas auf dem Heap erzeugst Das ist eine gute Grundeinstellung in C++.