Parserfehler in Zeile <?xml version="1.0" ...?

Alles rund um die Programmierung mit Qt
Antworten
mister.xy
Beiträge: 11
Registriert: 29. April 2008 11:08

Parserfehler in Zeile <?xml version="1.0" ...?

Beitrag von mister.xy »

Hallo,

kann mir jemand bei folgendem Problem helfen:

ich will in einer XML-Datei einen Header hinzufügen. Dieser soll folgendermaßen aussehen:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>

Die Deklaration erstelle ich so:

Code: Alles auswählen

QDomProcessingInstruction headerXML = docXML.createProcessingInstruction( "xml","version=\"1.0\" encoding=\"UTF-16\"");
 docXML.appendChild(headerXML); //docXML = QDomDocument

Diese Zeile wird nach dem Erstelllen der XML-Datei geschrieben. Danach will ich weitere Zeilen in die Datei schreiben, dies jedoch gelingt nicht, weil dann der Parser einen Fehler meldet:

In XML-File: test.xml
Error in Line: 1, Column: 1:error occurred while parsing element


Danach wird die Datei geschlossen und 1 zurückgegeben.

Die XML-Datei öffne und parse so:

Code: Alles auswählen

QByteArray XMLfileContent = xmlFile.readAll();
QString sXMLfileContent((const QByteArray&)XMLfileContent);

if(!docXML.setContent(sXMLfileContent,&errorMessage,&line,&column))
{
     cout<<"\nIn XML-File: "<<qPrintable(xmlFile.fileName())<<endl;
     cout<<"Error in Line: " << line << ", Column: " << column << ":" << qPrintable(errorMessage)<<endl;
        xmlFile.close();
        return 1;
 }
Die XML-Datei sieht nach einem Durchlauf so aus:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
<data>
 <global_sets/>
 <local_sets/>
</data>

Was kann ich machen, damit der Parser bei der Zeile

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-16"?>
keinen Fehler mehr ausgibt.

Übrigens: Für die erstellte XML-Datei wird unter einem XML-Editor UTF-16LE als Kodierung angegeben.
Anbei habe ich die Code-Fragmente, die eben die Kodierung auf UTF-16 stellt, die Datei anlegt, das Root-Tag <data>, die Tags <global_sets> bzw. <local_sets> erstellt und das Ganze in die Datei schreibt. Wenn die Datei dann existiert, diese öffnet, liest und parst.

Bin über jeden Hinweis bzw. Tipp dankbar.


Gruß
mister.xy
Dateianhänge
codeFragment.txt
Code-Fragement
(1.73 KiB) 125-mal heruntergeladen
Zuletzt geändert von mister.xy am 20. August 2008 10:51, insgesamt 3-mal geändert.
mister.xy
Beiträge: 11
Registriert: 29. April 2008 11:08

Beitrag von mister.xy »

Könnte mir jemand bei dem beschriebenen Problem helfen.

Bin über jeden Hinweis bzw. Tipp dankbar.


Gruß
mister.xy
Antworten