我只是循环遍历一堆QDomNodes,并根据一些条件我想删除QDomNode。但是,当我尝试删除它时,我收到此错误:
没有用于调用'QDomNode :: removeChild(QDomNode *&)'的匹配函数
我不清楚为什么因为removeChild()方法确实存在于QDomNode类对象上。
void update_child_node(QDomNode *node) {
if (!node->isElement()) return;
QDomElement el = node->toElement();
if (el.tagName() != "node") return;
// remove old node
QDomNode parent = node->parentNode();
parent.removeChild(node);
}
void update_child_elements(QDomElement *root) {
if (!root->isElement()){
return;
}
QDomNodeList nodeList = root->elementsByTagName("node");
for(int k = 0;k < nodeList.count(); k++)
{
QDomNode node = nodeList.at(k);
update_child_node(&node);
}
}
答案 0 :(得分:1)
removeChild
的签名需要参考:QDomNode removeChild(const QDomNode & oldChild)
。你传给它一个指针。