QT5——xml文件的读写

本文介绍了使用QT5的QXmlStreamReader和QXmlStreamWriter进行XML文件的读写,以及通过QDomDocument实现XML文件的读取、增加、删除和修改元素。示例代码详细展示了如何操作XML文件。
摘要由CSDN通过智能技术生成

1、使用流QXmlStreamReader、QXmlStreamWriter读写xml文件

项目的pro文件里面添加:

QT       +=core xml
用QXmlStreamReader读取xml文本内容

在路径C:\Users\Administrator\Desktop\ZGXIPCDemo中存放device.xml文件。内容以及各式如下:
在这里插入图片描述使用qDebug()显示读取文件的内容

#include<QFile>
#include<QXmlStreamReader>
#include<QXmlStreamWriter>
#include<QDebug>

void query_dev_xml(QString dev_xml_dir); //查询xml,dev_xml_dir是xml文件的存放地址
//查询制定的.xml中相应信息,显示在终端
//dev_xml_dir .xml文件的存放地址
void devmanager::query_dev_xml(QString dev_xml_dir) //查询xml
{
   
    QFile file(dev_xml_dir);//
    if(!file.open(QFile::ReadOnly|QFile::Text))
    {
   
        qDebug()<<"cannot open file";
    }
    else {
   
        qDebug()<<"file opened!";
    }
    QXmlStreamReader reader;
    reader.setDevice(&file);
    while(!reader.atEnd())
    {
   
        QXmlStreamReader::TokenType type =reader.readNext();
        //根据记号的类型进行输出
        if (type==QXmlStreamReader::StartElement)
        {
   
            qDebug()<<"start element:"<<reader.name()<<"reader.text:"<<reader.text();
            if(reader.attributes().hasAttribute("id"))
            {
   
                qDebug()<<"has attribute device id="<<reader.attributes().value("id");
                qDebug()<<"version"<<reader.attributes().value("version");
                qDebug()<<"password: "<<reader.attributes().value("password");
                qDebug()<<"username: "<<reader.attributes().value("username");
                qDebug()<<"channelno: "<<reader.attributes().value("channelno");
                qDebug()<<"port: "<<reader.attributes().value("port");
                qDebug()<<"ip: "<<reader.attributes().value("ip");
                qDebug()<<"type: "<<reader.attributes().value("type");
                qDebug()<<"name: "<<reader.attributes().value("name");
                qDebug()<<"id: "<<reader.attributes().value("id");
            }
            else
            {
   
                 qDebug()<<"element has no id";
            }
        }

        if(type==QXmlStreamReader::EndElement)
            qDebug()<<" end element: "<<reader.name();
        if (type==QXmlStreamReader::Characters&&!reader.isWhitespace())
            qDebug()<<"Characters and is whitespace: "<<reader.text();
    }

    file.close();
}

运行结果如下:
在这里插入图片描述

使用QXmlStreamWriter编写xml文件

1、直接填写具体信息

void write_dev_xml(QString dev_xml_dir);  //写入xml数据,其它设置同上
//将设备信息写入.xml文件中
//dev_xml_dir:.xml文件地址  devinfo:设备信息
void devmanager::write_dev_xml(QString dev_xml_dir)//, dev_info devinfo
{
   
    QFile file(dev_xml_dir);//
    if(!file.open(QFile::WriteOnly|QFile::Text|QFile::Truncate))
    {
   
        qDebug()<<"cannot open file to write";
    }
    else
    {
   
        qDebug()<<"write file opened!";
    }

    QXmlStreamWriter writer;
   // QXmlStreamReader reader;  //
    QXmlStreamAttributes attributes;   //QXmlStreamAttributes,而非QXmlStreamAttribute

    writer.setCodec("UTF-8");
    writer.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值