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