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