QDomElement QDomDocument :: documentElement()返回类型不是引用,它如何在QDomDocument中更改xml?

时间:2016-08-03 10:06:52

标签: xml qt dom

正如我的标题所表达的那样,我使用QDomDocument读入xml文件并使用他的函数QDomDocument::documentElement()来实现xml的根节点Element。像这样:

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);

但是函数的返回类型不是引用类型,为什么appendChild()可以更改QDomDocument的内容?

1 个答案:

答案 0 :(得分:1)

The doc说(强调我的):

  

解析的XML在内部由可以使用的对象树表示   可以使用各种QDom类访问。 仅限所有QDom课程   内部树中的引用对象。中的内部对象   一旦引用它们的最后一个QDom对象,DOM树将被删除   并删除QDomDocument本身。

因此,在某个QDom元素上调用QDomNode::appendChild将更改其文档内部xml树。