qt 寫入xml檔案例項

佳欣有点傻發表於2024-07-02

這個程式碼示例展示瞭如何使用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 }

相關文章