Qt提供了一组类来读写XML文档,这些类都在QtXml模块中。下面是一个简单的例子,演示如何使用Qt Dom读写XML文档:
#include <QtXml>
int main()
{
// 创建一个XML文档对象
QDomDocument doc;
// 创建根元素
QDomElement root = doc.createElement("root");
doc.appendChild(root);
// 创建一个子元素
QDomElement child = doc.createElement("child");
root.appendChild(child);
// 设置子元素的属性
child.setAttribute("name", "Alice");
// 创建一个文本节点
QDomText text = doc.createTextNode("Hello, World!");
child.appendChild(text);
// 将文档写入文件
QFile file("example.xml");
if (file.open(QIODevice::WriteOnly))
{
QTextStream stream(&file);
stream << doc.toString();
file.close();
}
// 从文件中读取文档
if (file.open(QIODevice::ReadOnly))
{
if (doc.setContent(&file))
{
// 遍历根元素的子元素
QDomNodeList children = root.childNodes();
for (int i = 0; i < children.size(); i++)
{
QDomNode child = children.at(i);
if (child.isElement())
{
QDomElement element = child.toElement();
QString name = element.tagName();
QString value = element.attribute("name");
QString text = element.text();
qDebug() << "Element: " << name << " Attribute: " << value << " Text: " << text;
}
}
}
file.close();
}
return 0;
}
这个例子创建了一个XML文档,将其写入文件example.xml中,然后从文件中读取文档并遍历其子元素。输出结果如下:
Element: child Attribute: Alice Text: Hello, World!
这个例子只是Qt Dom读写XML的一个简单示例,Qt提供了更多的类和方法来处理XML文档,可以根据具体需求选择适合的方法。