使用Qt输出xml文件
void PixelConversionLibrary::generateXML()
{
QFile file("D:/TEST.xml");//创建xml文件
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))//以只写方式,文本模式打开文件
{
qDebug() << "generateXML:Failed to open file.";
return;
}
QXmlStreamWriter xmlWriter(&file);//对该文件创建一个xml写入器
xmlWriter.setAutoFormatting(true);//这一行设置xmlWriter为自动格式化模式,这意味着生成的 XML 文件将以更易读的格式排列,包括缩进和换行
xmlWriter.writeStartDocument();//这一行开始写入 XML 文档。这是 XML 文档的起始点,它会写入 XML 文件的文档声明。
xmlWriter.writeStartElement("legend_layer");//这一行写入一个 XML 元素的开始标记 <legend_layer>。这表示 XML 文档中的一个元素的开始,该元素的名称是 "legend_layer"。
xmlWriter.writeAttribute("job", "000000");//下面5行这一部分写入 <legend_layer> 元素的属性。
xmlWriter.writeAttribute("layer", "XLCS0000.gbr");
xmlWriter.writeAttribute("width", "3.46089");
xmlWriter.writeAttribute("height", "7.70589");
xmlWriter.writeAttribute("side", "");
//xmlWriter.writeEndElement(); 注意,这里没有这条语句,说明后面写的元素都是legend_layer的子元素
xmlWriter.writeStartElement("output_by");
xmlWriter.writeAttribute("hostname", "");
xmlWriter.writeAttribute("os", "");
xmlWriter.writeAttribute("time", QDateTime::currentDateTime().toString());
xmlWriter.writeAttribute("units", "inch");
xmlWriter.writeEndElement(); // output_by
xmlWriter.writeStartElement("resolution");
xmlWriter.writeAttribute("x", QString::number(XDPI));
xmlWriter.writeAttribute("y", QString::number(YDPI));
xmlWriter.writeEndElement(); // resolution
xmlWriter.writeStartElement("panel");
xmlWriter.writeAttribute("step", "temp");
xmlWriter.writeAttribute("angle", "0");
xmlWriter.writeAttribute("mirror", "no");
xmlWriter.writeAttribute("x", "-0.15748");
xmlWriter.writeAttribute("y", "-15.3937");
xmlWriter.writeEndElement(); // panel
xmlWriter.writeEndElement(); // legend_layer
xmlWriter.writeEndDocument();//结束整个 XML 文档的写入
file.close();
return;
}
写入生成的xml文件如下: