qt利用struct和list写xml文件的完整实例
时间: 2024-04-08 20:34:34 浏览: 79
QT编写xml文件实例
下面是一个完整的示例,演示了如何使用struct和QList在Qt中写入XML文件:
```cpp
#include <QtXml>
#include <QDebug>
struct Student {
QString name;
int age;
QString major;
};
int main() {
QList<Student> studentList;
Student student1;
student1.name = "Alice";
student1.age = 20;
student1.major = "Computer Science";
studentList.append(student1);
Student student2;
student2.name = "Bob";
student2.age = 22;
student2.major = "Mathematics";
studentList.append(student2);
QDomDocument doc;
// 创建根节点
QDomElement root = doc.createElement("Students");
doc.appendChild(root);
// 遍历学生列表,将每个学生信息添加到XML中
foreach(const Student& student, studentList) {
// 创建学生节点
QDomElement studentNode = doc.createElement("Student");
// 创建姓名节点,并设置文本内容
QDomElement nameNode = doc.createElement("Name");
nameNode.appendChild(doc.createTextNode(student.name));
studentNode.appendChild(nameNode);
// 创建年龄节点,并设置文本内容
QDomElement ageNode = doc.createElement("Age");
ageNode.appendChild(doc.createTextNode(QString::number(student.age)));
studentNode.appendChild(ageNode);
// 创建专业节点,并设置文本内容
QDomElement majorNode = doc.createElement("Major");
majorNode.appendChild(doc.createTextNode(student.major));
studentNode.appendChild(majorNode);
// 将学生节点添加到根节点下
root.appendChild(studentNode);
}
// 将XML文档保存到文件
QFile file("students.xml");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream stream(&file);
stream << doc.toString();
file.close();
qDebug() << "XML file saved successfully.";
} else {
qDebug() << "Failed to save XML file.";
}
return 0;
}
```
在上述示例中,我们首先定义了一个结构体`Student`,表示学生的信息。然后创建了一个`QList<Student>`来保存多个学生对象。
接下来,使用`QDomDocument`创建了一个XML文档,并通过遍历学生列表,将每个学生的信息添加到XML中。最后,将XML文档保存到文件中。
请注意,为了运行此示例,需要在.pro文件中添加`QT += xml`以启用Qt的XML模块。
阅读全文