Parserfehler in Zeile <?xml version="1.0" ...?
Verfasst: 7. August 2008 22:25
Hallo,
kann mir jemand bei folgendem Problem helfen:
ich will in einer XML-Datei einen Header hinzufügen. Dieser soll folgendermaßen aussehen:
Die Deklaration erstelle ich so:
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:
Die XML-Datei sieht nach einem Durchlauf so aus:
Was kann ich machen, damit der Parser bei der Zeile
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
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;
}
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"?>Ü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