Seite 1 von 1

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

Verfasst: 7. August 2008 22:25
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

Verfasst: 19. August 2008 09:53
von mister.xy
Könnte mir jemand bei dem beschriebenen Problem helfen.

Bin über jeden Hinweis bzw. Tipp dankbar.


Gruß
mister.xy