Seite 1 von 1

XML Files erstellen

Verfasst: 12. Oktober 2007 10:24
von Rainer
Hallo,
ich programmiere erst seit kurzem mit Qt und hab jetzt folgendes Problem.
Ich möchte ein XML File erstellen das wie folgt aussieht:
<Werte>
<Wertepaar>
<X>30</X>
<Y>40</Y>
</Wertepaar>
<Wertepaar>
<X>80</X>
<Y>100</Y>
</Wertepaar>
</Werte>

Das XML File selber kann ich schon erstellen, ich kann auch die Tags für Werte und für das erste Wertepaar + X,Y und die Werte selber einfügen.
Nur wenn ich dann ein zweites, drittes, .. Paar einfügen möchte weiß ich nicht mehr weiter. Ich möchte das dies automatisch geht und ich nicht für jedes Wertepaar ein neues QDomElement anlegen muss.
Könnt ihr mir helfen??
mfg
rainer

danke

Verfasst: 17. Oktober 2007 21:57
von webmaster1987
ich würde vorschlagen du postest ein bisschen von deinem code dann kann man sehen was verbessert werden könnte.

ansonsten würde ich eine eigene Funktion vorschlagen z.b.:
(habs hier mal nur mit Atributen gemacht)

bool add( QDomDocument &doc, int x, int y ) {
QDomElement tag = doc.createElement("Wertepaar");
tag.setAttribute("x", x);
tag.setAttribute("y", y);
}

Verfasst: 18. Oktober 2007 08:42
von dust2
Es ist nicht immer notwendig, extra einen DOM zu bauen, nur weil man XML erzeugen will. Oft hat man ja nur ein paar Werte in lienearer Reihenfolge vorliegen, die man in eine XML-Struktur packen will, dann TROLLTECH-XML-Writter-Klasse benutzen, die schreibt einfach einen Textstream raus der wie XML aussieht:

http://doc.trolltech.com/qq/qq05-generating-xml.html

Das Sample kannst Du so übernehmen, ich hatte im Konstruktur nur was an der UTF-Codierung ändern müssen (setCodec) bei Bedarf schick ichs dir

Daniel

Verfasst: 18. Oktober 2007 11:53
von Rainer
danke für eure antworten,
ich hab mein problem aber jetzt so gelöst, dass ich mir eine eigene Funktion gemacht hab wie z.B.:

Code: Alles auswählen

QDomElement MainWindow::add_ykoor(QDomDocument &d)
{
	QDomElement cn = d.createElement("Y-Koor");
	return cn;
}
Diese Funktion ruf ich dann öfter auf und füg sie so öfter in mein XML File ein