qt xml文件写入读取

这篇具有很好参考价值的文章主要介绍了qt xml文件写入读取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

******************************************************************************

QT       += core gui xml

******************************************************************************

#include "mainwindow.h"
#include <QDomDocument>
#include <QTextStream>
#include <QFile>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // 创建文档
    QDomDocument docWrite;

    // 创建根节点
    QDomElement rootWrite = docWrite.createElement("Student");

    // 添加根节点到文档中
    docWrite.appendChild(rootWrite);

    // 创建子节点并设置属性和文本内容
    QDomElement name = docWrite.createElement("Name");
    QDomText text = docWrite.createTextNode("zhangsan");
    name.appendChild(text);

    // 将子节点添加到根节点中
    rootWrite.appendChild(name);

    QDomElement age = docWrite.createElement("Age");
    text = docWrite.createTextNode("12");
    age.appendChild(text);
    rootWrite.appendChild(age);

    QDomElement course = docWrite.createElement("Course");
    rootWrite.appendChild(course);

    QDomElement math = docWrite.createElement("Math");
    text = docWrite.createTextNode("100");
    math.appendChild(text);
    course.appendChild(math);

    QDomElement chinese = docWrite.createElement("Chinese");
    text = docWrite.createTextNode("90");
    chinese.appendChild(text);
    course.appendChild(chinese);

    // 保存文档到文件
    QFile fileWrite("test.xml");
    if(fileWrite.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        QTextStream stream(&fileWrite);
        stream << docWrite.toString(4);
        fileWrite.close();
    }

    //
    QDomDocument docRead;

    QFile fileRead("test.xml");
    QString error = "";
    int row = 0, column = 0;

    if (fileRead.open(QIODevice::ReadOnly))
    {
        if(!docRead.setContent(&fileRead, false, &error, &row, &column))
        {
            qDebug() << "parse fileRead failed:" << row << "---" << column <<":" <<error;
            fileRead.close();
        }
        else
        {
            fileRead.close();

            QDomElement rootRead = docRead.documentElement();
            QDomNode nodeRead = rootRead.firstChild();

            while(!nodeRead.isNull())
            {
                QDomElement element = nodeRead.toElement();

                if(!element.isNull())
                {
                    qDebug() << element.tagName() << ":" << element.text();

                    QDomNode nodeReadSon = element.firstChild();

                    while(!nodeReadSon.isNull())
                    {
                        QDomElement elementSon = nodeReadSon.toElement();

                        if(!elementSon.isNull())
                        {
                            qDebug() << "---" << elementSon.tagName() << ":" << elementSon.text();
                        }
                        nodeReadSon = nodeReadSon.nextSibling();
                    }
                }
                nodeRead = nodeRead.nextSibling();
            }
        }
    }
}

MainWindow::~MainWindow()
{
}

******************************************************************************

<Student>
    <Name>zhangsan</Name>
    <Age>12</Age>
    <Course>
        <Math>100</Math>
        <Chinese>90</Chinese>
    </Course>
</Student>

"Name" : "zhangsan"
"Age" : "12"
"Course" : "10090"
--- "Math" : "100"
--- "Chinese" : "90"文章来源地址https://www.toymoban.com/news/detail-699670.html

到了这里,关于qt xml文件写入读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt读写xml文件

    Qt使用XML模块,在.pro文件中添加 QT += xml Qt 提供了三种读 写  XML 文档的方法: QXmlStreamReader / QXmlStreamWriter: 一种快速的基于流的方式访问良格式 XML 文档 , 特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一

    2024年02月11日
    浏览(44)
  • QT解析xml文件

    mainwindow.cpp  mainwindow.h

    2024年02月14日
    浏览(38)
  • 利用Qt输出XML文件

    使用Qt输出xml文件 写入生成的xml文件如下:

    2024年02月02日
    浏览(52)
  • Qt XML文件解析 QDomDocument

    QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX,两者的区别是什么呢? DOM(Document Object Model):将XML文件保存为树的形式,操作简单,便于访问。 SAX(Simple API for XML):接近于底层,速度较快,但不便于访问。 如果要使用XML时,.pro文件中添加:  使用时添加文件

    2024年02月10日
    浏览(51)
  • Qt XML文件读、写、修改

    1.1 使用的库 1.2 主体语句 头部创建: 内容创建: 1.3 详细例子说明 .cpp文件

    2024年02月11日
    浏览(45)
  • Qt中XML文件创建及解析

    QT的配置文件中添加xml选项: 头文件:#include QXmlStreamWriter 写入的文件如图:   头文件:#include QXmlStreamReader  解析其中的Hobby模块: 输出结果:  

    2024年02月11日
    浏览(37)
  • Qt读写ini配置文件(QSettings)、XML

    1、ini相关的 总结:Qt读写ini配置文件(QSettings) - 布丁Plus - 博客园 (cnblogs.com) Qt读写ini文件(含源码+注释)_qt ini文件读写_lw向北.的博客-CSDN博客 2、XML相关的 Qt读写XML文件(含源码+注释)_qt写xml_lw向北.的博客-CSDN博客

    2024年02月11日
    浏览(54)
  • Qt 实例3 读取txt文件

    通过简单实例小程序,实现txt文件读取展示。 1、创建工程并进行界面设计。创建基于QWidget基类的Qt界面应用程序,并在主界面添加相关控件如下: 界面控件依次为:QLabel、QLineEdit、QPushButton、QTextEdit。 2、创建并绑定槽函数 .h头文件创建槽函数: .cpp源文件构造函数内绑定槽

    2024年02月11日
    浏览(45)
  • Python操作XML教程:读取、写入、修改和保存XML文档

    XML是一种常见的数据交换格式,在许多应用中都被广泛使用。通过掌握Python操作XML的基础知识,您将能够轻松地处理XML数据,从而实现数据的提取、修改和存储。 内容包括以下主要部分: 解析XML文档:学习如何使用Python解析XML文档,获取根元素和遍历子元素。 访问元素的内

    2024年02月13日
    浏览(48)
  • Qt6.5示例:QDomDocument类解析XML文档和文件

    QDomDocument类是用于处理XML文档的一个类。QDomDocument提供了对XML文档数据访问的一系列功能,主要功能包括如下: 解析XML文档:QDomDocument可以将XML文档解析为树形结构,每个节点都是一个QDomNode对象,可以通过QDomNode对象的方法来访问和修改节点属性和内容。 创建XML元素和文本

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包