2

我正在用 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 方法?

谢谢 :)

4

1 回答 1

5

基本上 DomElement 创建需要 QDomDocument 拥有的信息。来自 Qt 4.7 文档

由于元素、文本节点、注释、处理指令等不能存在于文档的上下文之外,因此文档类还包含创建这些对象所需的工厂函数。创建的节点对象有一个 ownerDocument() 函数,该函数将它们与在其上下文中创建它们的文档相关联。

http://doc.qt.io/archives/qt-4.7/qdomdocument.html#details(第三段)

于 2011-07-26T21:00:26.410 回答