如何使用c ++将子项附加到qt中的QDomDocumentFragment对象

时间:2008-12-24 16:35:46

标签: c++ qt

我正在使用qt 4.4.3和c ++。我想实现一个QDomDocumentFragment对象,并将其作为函数的返回值传递。我使用它与QDomElement对象一样,使用appendChild()

QDomDocumentFragment rootnode;

QDomNode initmodnode = doc.createElement("initmod");
QDomText initmodval = doc.createTextNode("4");
initmodnode.appendChild(initmodval);
rootnode.appendChild(initmodnode);

以这种方式插入7个其他节点并从函数返回后,我注意到在insertAfter()节点上调用带有返回的QDomDocumentFragment的QDomElement未插入任何新子节点。在函数内部使用以下代码进行调试之后,我意识到没有节点实际插入到rootnode中:

QMessageBox::information(this->owner, QObject::tr("Debug"), QObject::tr("Node has children: ")+QString::number(rootnode.childNodes().size()));

打印的消息是“节点有子节点:0”。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

很抱歉浪费每个人的时间..看起来我需要使用以下方式创建文档片段:

QDomDocumentFragment rootnode = doc.createDocumentFragment();