我正在使用XML做一些事情,现在我很困惑。 这段代码完美无缺:
QDomElement new_item = doc.createElement(name);
new_item.setAttribute("type", value.typeName());
new_item.setAttribute("value", value.toString());
doc.elementsByTagName(section).at(0).appendChild(new_item);
但是如果我自己创建QDomElement(不调用createElement方法),那么它就不会插入到文档中。这样的事情不起作用:
QDomElement new_item;
new_item.setTagName(name);
new_item.setAttribute("type", value.typeName());
new_item.setAttribute("value", value.toString());
doc.elementsByTagName(section).at(0).appendChild(new_item);
有人可以向我解释为什么我需要使用createElement方法吗?
谢谢:)
答案 0 :(得分:4)
基本上,DomElement创建需要QDomDocument具有的信息。从Qt 4.7文档
由于元素,文本节点,注释,处理指令等不能存在于文档的上下文之外,因此文档类还包含创建这些对象所需的工厂函数。创建的节点对象具有ownerDocument()函数,该函数将它们与创建它们的上下文中的文档相关联。
http://doc.qt.io/archives/qt-4.7/qdomdocument.html#details(第三段)