qt 写入xml文件实例

cnblogs 2024-07-03 08:09:00 阅读 68

这个代码示例展示了如何使用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 }



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。