Seite 1 von 1

Simples XML schreiben

Verfasst: 5. Februar 2006 12:39
von Querdenker
Hi,

ich bin am verzweifeln. Ich verwende alle möglichen Tricks um folgendes in ein stinknormales File zu schreiben:

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

eigentlich simpel. Aber wohl nicht in Qt.
Die Gänsefüschen werden immer weggelassen und mit XmlReader
kommt natürlich prompt ein fatalError. Wie bekomme ich diese Gänsefüschen ins File???

So:

out << "<?xml version = """"1.0"""" ?>";

(was ja normal wäre, indem man die Sonderzeichen verdoppelt) geht es nicht.

Re: Simples XML schreiben

Verfasst: 5. Februar 2006 12:57
von Christian81
Querdenker hat geschrieben: (was ja normal wäre, indem man die Sonderzeichen verdoppelt) geht es nicht.
Also entweder haben sie das seit gestern neu oder Du hast Dich in der Programmiersprache geirrt. :)

Verfasst: 5. Februar 2006 13:04
von Querdenker
Hi,

nö. Eine Lösung wäre mir aber lieber gewesen :roll:
Schließlich schreibt man einen Backslash für einen Path ja auch:

"C:\\Test\\Testme" und das funkt!

Momentan habe ich folgende Krücke:

Code: Alles auswählen

QString tFile = "<?xml version=";
tFile += QChar(34); 
tFile += "1.0";
tFile += QChar(34);
tFile +=" encoding=";
tFile += QChar(34);
tFile += "UTF-8";
tFile += QChar(34);
tFile += " ?>";
out << tFile; 
irgendwie kann es das nicht sein ... *grübel*

Verfasst: 5. Februar 2006 13:14
von Christian81
Ok, dann studiere mal ein C-Buch ...

Code: Alles auswählen

out << "<?xml version = \"1.0\" ?>"; 

Verfasst: 5. Februar 2006 13:24
von Querdenker
Hi,

ich ahnte doch, das ich nur auf dem Schlauch stehe ;)

Das rockt!

Code: Alles auswählen

if(!fil.exists()){
      fil.open(QIODevice::WriteOnly);
      QTextStream out(&fil);
      out.setCodec("UTF-8");
      out << "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
           << "<!DOCTYPE MyXML>\n"
           << "<MyXML version=\"1.0\" >\n</MyXML>";
      fil.close();
}
:D