• 4049阅读
  • 1回复

[讨论]qt QDomDocument删除节点 [复制链接]

上一主题 下一主题
离线涉柘
 

只看楼主 倒序阅读 楼主  发表于: 2016-04-12
最近在做关于xml的操作,读写都可以了,就是删除出了问题,以下是删除的代码,大家帮忙看看哪里出问题了,感激不尽!

QDomNodeList list = doc.elementsByTagName(tr("example"));//以标签名进行查找
    for(int i=0; i<list.count(); i++)
    {
        QDomElement e = list.at(i).toElement();
        if(e.attribute(tr("filename")) == filename)//如果元素的“编号”属性值与我们所查的相同
            {
                QDomElement root = doc.documentElement();  //取出根节点
                root.removeChild(list.at(i));  //从根节点上删除该节点
                qDebug() << i;
                qDebug() << "remove ok !";

                QFile fi("config.xml");     //保存更改
                 if(!fi.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) return ;
                QTextStream out(&fi);
                doc.save(out,4);
                 fi.close();
                 qDebug() << "save ok----------!";
                return;

这个是xml文件,我准备删除的是某个example,按照filename查找,然后删除所在的example

<demolauncher>
  <demos>

    <example filename="../../../SrtTest/FileBrowser/browser" name="File Browser" image="screenshots/filebrowser.png"/>
    <example filename="../../browser/browser" name="Internet Browser" image="screenshots/browser.png"/>
    <example filename="../../../SrtTest/qshell" name="QT Shell" image="screenshots/qtshell.png"/>
    <example filename="../../../SrtTest/WifiSet" name="Wifi Set(Click and Wait)" image="screenshots/WifiSet.png"/>
</demos>
离线涉柘

只看该作者 1楼 发表于: 2016-04-13
快速回复
限100 字节
 
上一个 下一个