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?


  • Moderators

    du musst die Änderungen am QDomDocument auch wieder in die Datei zurückschreiben.

    file.write( doc.toByteArray(2) );
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.