XML Datei erstellen
-
Hallo Leute,
ich möchte in einer XML Datei ein Tag suchen und dort etwas hinzufügen....
Mein Code sieht folgendermaßen aus:
@void handledom::writeNewTag(void)
{QDomDocument doc;
QFile file( "c://test/test3.xml" );if ( true == file.open(QIODevice::ReadWrite))
{
doc.setContent(&file);
QDomElement root = doc.documentElement();
if (root.tagName() == "data")
{
QMessageBox msgBox2;
msgBox2.setText("soweit so gut");
msgBox2.exec();
}
QDomNode n= root.firstChild();
while(!n.isNull())
{
QDomElement e =n.toElement(); //convert node n to element e
if(!e.isNull())
{
if(e.tagName() == "persons")
{
QDomElement newValueTag = doc.createElement(QString("value"));
QDomText newValueText = doc.createTextNode(QString("1234"));
QDomAttr newValueAttr = doc.createAttribute(QString("34ms"));
//newValueTag.appendChild(newValueAttr);
newValueTag.appendChild(newValueText);
e.appendChild(newValueTag);
QMessageBox msgBox2;
msgBox2.setText("müsste eigentlich geklappt haben");
msgBox2.exec();} } n = n.nextSibling();
}
}
file.close();}
@Mein Problem ist, dass das Programm zwar durch die append Funktionen durchläuft aber die XML Datei nicht verändert wird...
Könnt ihr mit weiterhelfen bzw. sagen was noch falsch ist? -
du musst die Änderungen am QDomDocument auch wieder in die Datei zurückschreiben.
file.write( doc.toByteArray(2) );