Seite 1 von 1

Problem mit QDomElement

Verfasst: 2. Dezember 2010 21:26
von abenstex
Hallo zusammen,

ich habe eine XML-Datei nach folgendem Muster:

Code: Alles auswählen

<tag1>
  <tagA label="foo">abc</tagA>
  <tagA label="bar">def</tag>
</tag1>
Jetzt will ich für ein tagA-Element mit einem bestimmten label den Wert ändern sprich für das Element tagA mit label foo soll der Text von abc nach 123 geändert werden. Mein Problem ist jetzt dass

Code: Alles auswählen

setNodeValue(QString s)
bei einem QDomElement anscheinend keine Wirkung zeigt, das heisst, dass sich der Wert nicht ändert, und dass ich bei einem QDomText die Attribute nicht überprüfen kann.

Hat irgendwer ne Idee? Vermutlich steh ich nur furchtbar auf dem Schlauch...

Verfasst: 2. Dezember 2010 21:31
von upsala
Das QDomElement hat ein QDomText oder etwas ähnliches als child. Von diesem sollte sich der Text ändern lassen.

Verfasst: 2. Dezember 2010 21:36
von abenstex
Das habe ich schon versucht:

Code: Alles auswählen

el.toText().setNodeValue(QString::number(value));
            
            if(!attributeName.isEmpty())
            {
                el.setAttribute(attributeName, attributeValue);
            }
            m_doc.appendChild(el);
aber der Wert im Dokument ändert sich nicht.

Verfasst: 3. Dezember 2010 09:16
von franzf
Nicht el.toText(). Du sollst die childnodes von el abklappern, schauen ob die nach QTextNode konvertierbar sind, und dann da den Text setzen. Ein Beispiel hast du direkt in der Doku zu QDomElement.