QT开发中文网

qt 读写xm

l文件

Qt提供了许多类来读写XML文件,其中最常用的是QXmlStreamReader和QXmlStreamWriter。

使用QXmlStreamReader读取XML文件:

#include <QtCore/QCoreApplication>
#include <QtCore/QFile>
#include <QtCore/QDebug>
#include <QtXml/QXmlStreamReader>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("file.xml");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "Can't open the file!";
        return -1;
    }

    QXmlStreamReader xml(&file);
    while (!xml.atEnd()) {
        xml.readNext();
        if (xml.isStartElement()) {
            qDebug() << "Start element:" << xml.name();
            // 获取属性值
            if (xml.attributes().hasAttribute("id")) {
                qDebug() << "id:" << xml.attributes().value("id").toString();
            }
        } else if (xml.isEndElement()) {
            qDebug() << "End element:" << xml.name();
        } else if (xml.isCharacters()) {
            qDebug() << "Character data:" << xml.text();
        }
    }

    if (xml.hasError()) {
        qDebug() << "Error: Failed to parse XML.";
        return -1;
    }

    file.close();

    return a.exec();
}

使用QXmlStreamWriter写入XML文件:

#include <QtCore/QCoreApplication>
#include <QtCore/QFile>
#include <QtCore/QDebug>
#include <QtXml/QXmlStreamWriter>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("file.xml");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qDebug() << "Can't open the file!";
        return -1;
    }

    QXmlStreamWriter xml(&file);
    xml.setAutoFormatting(true);
    xml.writeStartDocument();
    xml.writeStartElement("root");
    xml.writeStartElement("person");
    xml.writeAttribute("id", "001");
    xml.writeTextElement("name", "Alice");
    xml.writeTextElement("age", "20");
    xml.writeEndElement(); // person
    xml.writeStartElement("person");
    xml.writeAttribute("id", "002");
    xml.writeTextElement("name", "Bob");
    xml.writeTextElement("age", "30");
    xml.writeEndElement(); // person
    xml.writeEndElement(); // root

    file.close();

    return a.exec();
}

在写入XML文件时,需要注意以下几点:

  • 需要先调用writeStartDocument函数来写入XML文档的声明。
  • 调用writeStartElement函数来开始一个元素,再使用writeEndElement函数结束一个元素。
  • 使用writeAttribute函数来设置元素的属性。
  • 使用writeTextElement函数来设置元素的值。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2728

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?