Simples XML schreiben

Verschiedenes zu Qt
Antworten
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Simples XML schreiben

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Simples XML schreiben

Beitrag 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. :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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*
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ok, dann studiere mal ein C-Buch ...

Code: Alles auswählen

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

'Funktioniert nicht' ist keine Fehlerbeschreibung
Querdenker
Beiträge: 99
Registriert: 1. Dezember 2005 17:44
Wohnort: Karlsruhe

Beitrag 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
Antworten