正如我的标题所表达的那样,我使用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
的内容?
答案 0 :(得分:1)
The doc说(强调我的):
解析的XML在内部由可以使用的对象树表示 可以使用各种QDom类访问。 仅限所有QDom课程 内部树中的引用对象。中的内部对象 一旦引用它们的最后一个QDom对象,DOM树将被删除 并删除QDomDocument本身。
因此,在某个QDom元素上调用QDomNode::appendChild
将更改其文档内部xml树。