qt利用struct和list写xml文件
时间: 2024-04-08 12:34:34 浏览: 149
使用Qt 生成xml文件
4星 · 用户满意度95%
在Qt中,可以使用struct和QList来构建并写入XML文件。下面是一个简单的示例:
首先,我们定义一个结构体(struct)来表示XML中的数据项。例如,假设我们要表示一个学生的信息,可以定义如下的结构体:
```cpp
struct Student {
QString name;
int age;
QString major;
};
```
然后,我们创建一个QList来保存多个学生的信息:
```cpp
QList<Student> studentList;
```
接下来,我们可以使用QDomDocument类来创建XML文档,并将学生信息写入到XML中:
```cpp
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();
}
```
上述代码中,我们使用QDomDocument创建了一个XML文档,然后通过遍历学生列表,将每个学生的信息添加到XML中。最后,将XML文档保存到文件中。
请注意,这只是一个简单的示例,实际的XML结构和数据可能更加复杂。你可以根据自己的需求进行调整和扩展。
阅读全文