• 12413阅读
  • 4回复

QT下操作XML,怎样修改它的节点值? [复制链接]

上一主题 下一主题
离线adang322
 

只看楼主 倒序阅读 楼主  发表于: 2008-06-25
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
比如:<root><firstChild>text</firstChild></root> 。
我想把text改为“upateText”,怎样操作呢?
我用了setNodeValue()函数,好像不行。
Linux、C/C++、QT、OpenGL、Linux/Unix socket、Python
离线snailbing

只看该作者 1楼 发表于: 2008-06-25
你修改后还要保存进文件中,现在的修改只是对内存中的xml复本进行修改

你可以去看一下 demo 和 examples 中的例子 xml 系列的
离线caow2009
只看该作者 2楼 发表于: 2010-09-21
我也用了setNodeValue();但是前后的节点值没发生变化啊?
QString aName = "book1";
if( !aName.compare(n.nodeName()))
        {
            qDebug()   << n.toElement().text() << endl;

            n.toElement().setNodeValue(aValue);//aValue 为const QString&

            qDebug() << n.toElement().text() << endl;
        }
前后qDebug显示的都一样?为什么啊?
离线xtfllbl

只看该作者 3楼 发表于: 2010-09-21
引用第2楼caow2009于2010-09-21 15:55发表的  :
我也用了setNodeValue();但是前后的节点值没发生变化啊?
QString aName = "book1";
if( !aName.compare(n.nodeName()))
        {
            qDebug()   << n.toElement().text() << endl;
.......

你得先把n.toElement保存为一个element,然后修改输出这个element.

两次都是输出n.toElement,内容当然一样,都是N里过来的。。。

上海欢迎您
离线caow2009
只看该作者 4楼 发表于: 2010-09-21
回 3楼(xtfllbl) 的帖子
楼主啊,我试了怎么还不行啊?
QDomElement element;
        element = n.toElement();

        if( !aName.compare(n.nodeName()))
        {
            qDebug()  << " ***** " << element.text() << endl;

            element.setNodeValue(aValue);

            qDebug() << element.text() << endl;
        }
快速回复
限100 字节
 
上一个 下一个