我使用QDomDocument编写XML文档。
但是在我的dom树中,有些节点是使用docA创建的,有些是使用docB创建的。

QDomElement parentNode = docA.CreateElement("name");//created by docA
QDomElement childNode = docB.CreateElement("value");//created by docB
parentNode.appendChild(childNode);//in onr tree

和:
QTextStream out(&file);
docA.save(out, Indent);//docA created the root QDomElement
                       //write the file using docA

那么是否可以像这样将整个树写入XML?

最佳答案

您应该避免这种情况,因为如果在仍然使用docB的情况下,如果docA超出范围,则事情将开始出错。我相信您提出的建议在技术上会一直有效直到出现这种情况,但该库似乎旨在阻止这种情况。

但是,有一个函数QDomDocument::importNode()可能正是您想要的。您可以执行以下操作:

docAParent.appendChild( docA.importNode( docBNode, true ) );

bool(boolean) 参数控制是否进行深拷贝。

请参阅文档:http://qt-project.org/doc/qt-4.8/qdomdocument.html#importNode

09-06 19:57