如何制作整个QDomDocument的深层副本

时间:2014-10-29 14:56:59

标签: c++ qt qtxml

我想在xml模型中创建QDomDocument的深层副本,以便用户以后可以将文档恢复到其原始状态。 QDomDocument documentation表示可以使用cloneNode()来实现。但是,cloneNode()会返回QDomNode,而不是QDomDocument,而我似乎无法弄清楚如何将其正确添加到新文档中。

我试过了:

QDomDocument copy;
copy.importNode(existingDocument.cloneNode(true),true);

QDomDocument copy;
copy.appendChild(existingDocument.cloneNode(true),true);

但都不起作用。

1 个答案:

答案 0 :(得分:2)

如果您有QDomNode,则可以使用其toDocument功能。

假设 QDomNode节点是从cloneNode()返回的节点

QDomDocument newDocument = node.toDocument();