可以使用QXmlStreamWriter类来生成XML,并按照指定顺序输出。
首先,创建一个QXmlStreamWriter对象:
QXmlStreamWriter writer(&outputFile);
然后,设置自动格式化,以便更好地查看生成的XML:
writer.setAutoFormatting(true);
接下来,开始写入XML,根据节点的顺序,逐个添加节点和属性:
writer.writeStartDocument();
writer.writeStartElement("root");
writer.writeStartElement("node1");
writer.writeAttribute("attr1", "value1");
writer.writeEndElement();
writer.writeStartElement("node2");
writer.writeAttribute("attr2", "value2");
writer.writeEndElement();
// ...
writer.writeEndElement();
writer.writeEndDocument();
最后,记得关闭文件。
完整示例代码如下:
#include <QCoreApplication>
#include <QXmlStreamWriter>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile outputFile("output.xml");
if (!outputFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open output file.";
return -1;
}
QXmlStreamWriter writer(&outputFile);
writer.setAutoFormatting(true);
writer.writeStartDocument();
writer.writeStartElement("root");
writer.writeStartElement("node1");
writer.writeAttribute("attr1", "value1");
writer.writeEndElement();
writer.writeStartElement("node2");
writer.writeAttribute("attr2", "value2");
writer.writeEndElement();
// ...
writer.writeEndElement();
writer.writeEndDocument();
outputFile.close();
return a.exec();
}