Qt中修改XML文件中的节点值
不能修改XML文件的节点
xml文件:
<kdevelop>
<general>
<author>zeki</author>
<email>caizhiming@tom.com</email>
</general>
</kdevelop>
我写的源码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtXml>
#include <QDebug>
#include <QFile>
#include <QTextStream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDomDocument dom;
QFile *file=new QFile("/home/qust/qt/XML/2.xml");
if(file->open(QIODevice::ReadOnly|QIODevice::WriteOnly))
{
dom.setContent(file);
}
QDomNodeList email=dom.documentElement().elementsByTagName("email");
qDebug()<<email.count();//打印 1
qDebug()<<email.item(0).toElement().text();//打印caizhiming@tom.com
QDomNode oldnode =email.item(0);
QDomText newnode=dom.createTextNode("99629968@qq.com");
email.at(0).replaceChild(newnode,oldnode);
QTextStream out(file);
dom.save(out,4);
file->close();
}
MainWindow::~MainWindow()
{
delete ui;
}
不能修改XML文件,运行后打开xml文件出现
XML解析错误:废弃 document 元素之后的内容
位置:file:///home/qust/qt/XML/2.xml
行:8,列:1:<?xml version='1.0'?>
^
该怎么修改xml 中节点的值呢??为什么不能使用setNodeValue()方法来修改接点的值???
大家帮帮忙,谢谢!!!
xml文件:
<kdevelop>
<general>
<author>zeki</author>
<email>caizhiming@tom.com</email>
</general>
</kdevelop>
我写的源码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtXml>
#include <QDebug>
#include <QFile>
#include <QTextStream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDomDocument dom;
QFile *file=new QFile("/home/qust/qt/XML/2.xml");
if(file->open(QIODevice::ReadOnly|QIODevice::WriteOnly))
{
dom.setContent(file);
}
QDomNodeList email=dom.documentElement().elementsByTagName("email");
qDebug()<<email.count();//打印 1
qDebug()<<email.item(0).toElement().text();//打印caizhiming@tom.com
QDomNode oldnode =email.item(0);
QDomText newnode=dom.createTextNode("99629968@qq.com");
email.at(0).replaceChild(newnode,oldnode);
QTextStream out(file);
dom.save(out,4);
file->close();
}
MainWindow::~MainWindow()
{
delete ui;
}
不能修改XML文件,运行后打开xml文件出现
XML解析错误:废弃 document 元素之后的内容
位置:file:///home/qust/qt/XML/2.xml
行:8,列:1:<?xml version='1.0'?>
^
该怎么修改xml 中节点的值呢??为什么不能使用setNodeValue()方法来修改接点的值???
大家帮帮忙,谢谢!!!
...全文
相关推荐
Qt5 XML文件的解析,增删改查节点。
Qt5是一个强大的跨平台应用程序开发框架,它提供了丰富的API来支持XML处理,包括解析、创建、修改和查询XML文档。
Qt解析XML文件
在"ParseXml"这个项目中,你可能会看到关于如何在Qt中实现这两种解析方式的示例代码。DOM解析的示例可能包括加载XML文件,查找特定元素,修改元素值,然后保存回文件。
MyReadXML.rar
**修改XML节点**修改节点的值或属性,可以通过`nodeValue()`或`setAttribute()`方法。
QXmlWrapper,实现XML文件的创建、删除以及元素节点的增加、删除、修改与查找等。
**元素节点的修改**: 修改元素的值或属性,可以使用`editElement()`方法。方法接收元素DOM对象和新的值,然后更新元素的nodeValue或setAttribute()来修改属性。
xml文件的读取,遍历每个子节点,已经节点中的数据设置。
在Qt Creator这样的集成开发环境中,你可以打开此项目,查看和运行代码,进一步理解和学习XML在Qt中的应用。


