删除QDomNode抛出

时间:2018-03-31 12:34:54

标签: c++ qt

我只是循环遍历一堆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);
    }
}

1 个答案:

答案 0 :(得分:1)

removeChild的签名需要参考:QDomNode removeChild(const QDomNode & oldChild)。你传给它一个指针。