我使用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 中?
最佳答案
您应该避免这种情况,因为当 docA 超出范围且 docB 仍在使用时,事情就会开始出错。我相信您的提议在技术上将有效,直到这种情况发生,但该库似乎旨在阻止它。
但是,有一个函数 QDomDocument::importNode() 可能正是您想要的。你可以这样做:
docAParent.appendChild( docA.importNode( docBNode, true ) );
bool 参数控制是否进行深层复制。
请参阅文档:http://qt-project.org/doc/qt-4.8/qdomdocument.html#importNode
关于c++ - 是否有必要让同一个QDomDocument创建的QDomElement来编写XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585406/