Wie mein Titel ausgedrückt, ich benutze QDomDocument einlesen XML-Datei und verwenden Sie seine Funktion QDomDocument::documentElement()
, um Xml's Root-Knoten Element
zu erreichen. Wie folgt aus:QDomElement QDomDocument :: documentElement() Rückgabetyp ist keine Referenz, wie kann es XML in QDomDocument ändern?
QDomElement devices = docDetails_.documentElement();
QDomElement device = docDetails_.createElement("Device");
QDomAttr id = docDetails_.createAttribute("id");
id.setValue(QString::number(deviceInfo.id));
device.setAttributeNode(id);
devices.appendChild(device);
Aber die Rückgabetyp der Funktion ist kein Referenztyp, warum appendChild()
kann QDomDocument
‚s Inhalt ändern?
Sorry, ich verstehe immer noch nicht.Ich meine, wenn 'QDomDocument :: documentElement()' zurückgeben, was kein _reference_ ist, so ist ein _duplicate_.Then Betrieb auf _duplicate_ sollte keinen Sinn für den Inhalt von ' QDomDocument'. –
Ja, es ist ein anderes C++ - Objekt, aber es ist intern implementiert, um mit der internen Struktur 'QDomDocument' verknüpft zu werden. – hank
Ich denke auch so. Könnten Sie mir ein kurzes Beispiel über innere Implementation geben, sagten Sie. –