首页 > 其他分享 >qt 写入xml文件实例

qt 写入xml文件实例

时间:2024-07-02 20:09:23浏览次数:15  
标签:xml writeTextElement 元素 qt writeStartElement xmlWriter 写入 添加 writeEndElement

这个代码示例展示了如何使用QXmlStreamWriter类在Qt中生成一个包含多级节点和属性的XML文档:

 1 #include <QCoreApplication>
 2 #include <QFile>
 3 #include <QXmlStreamWriter>
 4 #include <QDebug>
 5 
 6 int main(int argc, char *argv[])
 7 {
 8     QCoreApplication a(argc, argv);
 9 
10     // 打开文件进行写操作
11     QFile file("books_with_attributes.xml");
12     if (!file.open(QIODevice::WriteOnly)) {
13         qWarning("Failed to open file for writing."); // 打开文件失败,输出警告信息
14         return -1;
15     }
16 
17     QXmlStreamWriter xmlWriter(&file); // 创建QXmlStreamWriter对象
18     xmlWriter.setAutoFormatting(true); // 设置自动格式化,使生成的XML文件更具可读性
19     xmlWriter.writeStartDocument(); // 开始写入XML文档
20 
21     // 根元素
22     xmlWriter.writeStartElement("library");
23 
24     // 第一书籍
25     xmlWriter.writeStartElement("book");
26     xmlWriter.writeAttribute("genre", "Fiction"); // 添加属性 genre
27     xmlWriter.writeAttribute("publicationYear", "1925"); // 添加属性 publicationYear
28     xmlWriter.writeTextElement("title", "The Great Gatsby"); // 添加标题元素
29     xmlWriter.writeStartElement("author"); // 添加作者元素
30     xmlWriter.writeTextElement("firstName", "F. Scott"); // 添加作者名字
31     xmlWriter.writeTextElement("lastName", "Fitzgerald"); // 添加作者姓氏
32     xmlWriter.writeEndElement(); // 结束作者元素
33     xmlWriter.writeTextElement("year", "1925"); // 添加年份元素
34     xmlWriter.writeEndElement(); // 结束书籍元素
35 
36     // 第二书籍
37     xmlWriter.writeStartElement("book");
38     xmlWriter.writeAttribute("genre", "Dystopian"); // 添加属性 genre
39     xmlWriter.writeAttribute("publicationYear", "1949"); // 添加属性 publicationYear
40     xmlWriter.writeTextElement("title", "1984"); // 添加标题元素
41     xmlWriter.writeStartElement("author"); // 添加作者元素
42     xmlWriter.writeTextElement("firstName", "George"); // 添加作者名字
43     xmlWriter.writeTextElement("lastName", "Orwell"); // 添加作者姓氏
44     xmlWriter.writeEndElement(); // 结束作者元素
45     xmlWriter.writeTextElement("year", "1949"); // 添加年份元素
46     xmlWriter.writeEndElement(); // 结束书籍元素
47 
48     // 结束根元素
49     xmlWriter.writeEndElement();
50 
51     xmlWriter.writeEndDocument(); // 结束XML文档写入
52 
53     file.close(); // 关闭文件
54 
55     qDebug() << "XML file created successfully."; // 输出成功信息
56 
57     return a.exec();
58 }

 

标签:xml,writeTextElement,元素,qt,writeStartElement,xmlWriter,写入,添加,writeEndElement
From: https://www.cnblogs.com/jiaxinyoudiansha/p/18280465

相关文章

  • 深入理解Qt多线程编程(QtConcurrent)
    多线程编程在现代软件开发中变得越来越重要,它能够提高应用程序的响应速度和处理性能。在Qt框架中,除了QThreadPool,QtConcurrent也是一个强大的工具,用于简化和管理多线程编程。目录概述接口详解QtConcurrent::runQtConcurrent::mapQtConcurrent::mappedQtConcurrent::filt......
  • 深入理解Qt的隐式共享机制
    在Qt中,一个关键的性能优化特性是其数据结构的隐式共享机制,这在Qt的文档和API中常被称为“隐式共享”或“写时复制(Copy-On-Write,COW)”。本文将详细介绍这一机制,并通过QString类的实现代码和相应的反汇编代码来阐释其工作原理。隐式共享的定义和优点隐式共享是一种内存管......
  • Qt/C++开发经验小技巧296-300
    使用QDir::setCurrent设置当前目录后,会影响程序中的所有相对目录的执行,导致可能的意外发生,一般相对目录都默认是可执行文件所在目录,所以如果程序中为了特殊处理临时调用了QDir::setCurrent设置过相对目录,建议处理完成以后立即切换回来。QDir::setCurrent("f:/");QImageimg(":......
  • Qt QTableView设置自适应行高、列宽、行样式
    1、QTableView设置自适应行高ui->tableViewMonitor->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//自动设置行高2、QTableView设置自适应列宽ui->tableViewMonitor->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents)......
  • Qt QTableWidget resizeRowsToContents非常慢
    QTableWidget是Qt框架中的一个表格控件,用于显示和编辑表格数据。resizeRowsToContents是QTableWidget的一个函数,用于自动调整表格行的高度以适应内容。该函数在某些情况下可能会导致性能问题,特别是当表格中的行数较多或者表格中的内容较复杂时。这是因为该函数需要遍......
  • 随机生成50个0-100之间的数字,生成对应个数的随机字母,再按数字大小从小到大排序最后写
    importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Random;importjava.io.FileNotFoundException;importjava.io.PrintStream;publicclassRandomNum{publicstaticvoidmain(String[]args)throwsFileNotF......
  • QT6.7.2 MSVC源码编译 静态库 动态库
    QT6.7.2MSVC源码编译静态库动态库也可以参考官方的文档https://doc.qt.io/qt-6/build-sources.html环境搭建为了操作更有可复制性,这里在虚拟机中采用全新安装的系统进行配置。系统镜像为:en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96_2.iso安装VisualStudio......
  • 逆向通达信 x 逆向微信 x 逆向Qt
    本篇在博客园地址https://www.cnblogs.com/bbqzsl/p/18252961本篇内容包括:win32窗口嵌入QtUI。反斗玩转signal-slot。最后 通达信x微信xQt 做手术。 QtAlienWidget是一种广义的DirectUI。在UI技术中,DirectUI和AlienWidget的概念有所重叠,但具体实现和应用场景有所......
  • Qt:6.QWidget属性介绍(windowTitle、windowIcon、windowOpacity)以及QRC机制
    一、windowTitle属性-窗口标题:1.1windowTitle属性介绍:在Qt中,windowTitle属性是QWidget类提供的一个属性,用于设置和获取窗口的标题文本。它通常用于设置顶级窗口的标题栏显示内容。1.2设置窗口标题——setWindowTitle():widget->setWindowTitle("这是窗口标题");1......
  • WordPress 5.5+ 如何自定义XML 站点地图功能
    关键要点在WordPress5.5中,WordPress将导出一个站点地图索引文件/wp-sitemap.xml。这是主要的XML文件,其中包含WordPress网站公开的所有站点地图页面的列表。该站点地图索引最多可容纳50000个站点地图,单个站点地图最多可容纳2000个条目(可过滤)。默认情况下,将为所有公开和可公开查......