判断是否xml文件已经存在,若存在直接读数据,若不存在则创建
if (file.exists())
{
if (!file.open(QIODevice::ReadOnly))
{
qDebug() << "read file false";
return;
}
if (!doc.setContent(&file, true, &errorStr, &errorLine, &errorCol))//解析xml数据出错
{
qDebug() << errorStr << "line: " << errorLine << "col: " << errorCol;//打印出错行列
file.close();
return;
}
else//解析xml数据成功
{
file.close();
root = doc.documentElement();
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))//解析的数据保存在doc变量中,所以重新打开并清空文件,以便后面的继续写入数据
{
qDebug() << "open false";
return;
}
}
}
else
{
QXmlStreamWriter writer(&file);
writer.setAutoFormatting(true); // 自动格式化
writer.writeStartDocument(); // 开始文档(XML 声明,)系统会自动定义xml的版本
writer.writeEndDocument(); // 结束文档
file.close(); // 关闭文件
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))// 重新打开文件
return;
root = doc.createElement("图像预处理");
doc.appendChild(root); //添加根元素
}