追加Xml文档就是,要“增”一段内容,要实现的效果如下:
因为想临时存储一些东西,所以利用xml做个简易的数据库,要应用的ARM设备上,存放入SD卡。
网上找了半天,找了好多,都不给力啊,要么各种bug,要么就是杂乱无章然后还达不到效果。
于是决定自己研究Xml结构,自己写。
把其中主要的代码拿出来分享一下,希望点评,共同进步。
void appendElement(QFile *file, QString ele_name, QString ele_content)
{
//创建变量doc,去加载file的内容
QDomDocument doc;
if(!doc.setContent(file)) {
file->close();
return;
}
file->close();
//首先识别根节点
QDomElement root = doc.firstChildElement();
//创建一个元素
QDomElement data = doc.createElement(ele_name); //元素节点名字为ele_name
data.setAttribute("time", QTime::currentTime().toString()); //其属性是一个时间time值
QDomText text; //创建一个Dom文本,将其作为element元素里的内容
text = doc.createTextNode(ele_content); //将ele_content写入到text里
data.appendChild(text); //data加载text内容
//根节点追加子节点data,这时的data的内容已经丰满,有了名字ele_name,属性time,还有内容ele_content
root.appendChild(data);
//以下为保存过程
if(!file->open(QIODevice::WriteOnly))
qDebug() << "open";
QTextStream out(file);
doc.save(out, 4);
file->close();
}
然后我是用了QTimer,创建个定时器测试,每隔一秒写一次数据“123”。
不知这样是否合理,高效,低开销。
遂分享讨论之。