依赖的头文件
#include <QFile>
#include <QString>
#include <QtXml>
#include <QDomDocument>
#include <QDateTime>
示例代码1:
QFile file("write.xml");
if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate));
QDomDocument doc;
QDomProcessingInstruction instruction;
instruction = doc.createProcessingInstruction("xml","version=/"1.0/" encoding=/"UTF-8/"");
doc.appendChild(instruction);
QDomElement root=doc.createElement(tr("data"));
doc.appendChild(root);
QDomElement StartWeek=doc.createElement(tr("startweek"));
QDomElement ReadNumber=doc.createElement(tr("readnum"));
QDomElement AlarmTime=doc.createElement(tr("alarm"));
QDomElement AlarmPrompt=doc.createElement(tr("prompt"));
QDomText text;
text=doc.createTextNode("2010-03-01");
StartWeek.appendChild(text);
text=doc.createTextNode("2");
ReadNumber.appendChild(text);
text=doc.createTextNode("10");
AlarmTime.appendChild(text);
text=doc.createTextNode("vibration");
AlarmPrompt.appendChild(text);
root.appendChild(StartWeek);
root.appendChild(ReadNumber);
root.appendChild(AlarmTime);
root.appendChild(AlarmPrompt);
QTextStream out(&file);
doc.save(out,4);
file.close();
示例代码2:
//写xml操作。sXmlFilePath:要写入的xml文件路径
int CAppletGenerator::addTaskMenuTreeItem(QString sXmlFilePath)
{
QFile file(sXmlFilePath);
if (!file.open(QFile::ReadOnly | QFile::Text)) {
return -1;
}
QDomDocument domDocument;
if (!domDocument.setContent(&file, true)) {
file.close();
return -1;
}
QDomElement tree = domDocument.documentElement();
QDomElement firstItem = tree.firstChildElement();
//在firstitem上添加一个节点
QDomElement secondItem = domDocument.createElement("item");
//获取当前时间,用于节点的唯一性id
QDateTime dt;
QTime time;
QDate date;
dt.setTime(time.currentTime());
dt.setDate(date.currentDate());
QString currentDate = dt.toString("yyyyMMddhhmmss");
//为节点添加属性
secondItem.setAttribute("id",currentDate);
secondItem.setAttribute("select","1");
secondItem.setAttribute("text","节点");
//添加元素节点到父节点
firstItem.appendChild(secondItem);
file.close();
QFile fileModify(sXmlFilePath);
if (!fileModify.open(QFile::WriteOnly | QFile::Text)){
return -1;
}
//核心代码:Dom方式写xml文件
QTextStream out(&fileModify);
domDocument.save(out,4);
fileModify.close();
return 0;
}