Qt-QML-C++交互实现文件IO系统-后继-读取XML文件和创建XML文件
【摘要】
在前面两篇中,大致完成了一个文件IO的读和写操作。前面两篇文章链接
http://blog.csdn.net/z609932088/article/details/71488250
http://blog.csdn.net/z609932088/article/details/71598414
&n...
在前面两篇中,大致完成了一个文件IO的读和写操作。前面两篇文章链接
http://blog.csdn.net/z609932088/article/details/71488250
http://blog.csdn.net/z609932088/article/details/71598414
今天这个是,今天主要是写了怎么把配置文件写入到XML中
上今天的详代码
QJsonObject DLFileIOSystem::DLReadXML()
{
qDebug()<<"XML 读取函数执行";
QFile file("./config.xml"); //打开XMl文件
if(!file.open(QFile::ReadOnly | QFile::Text))
{
QMessageBox::information(NULL,"Title","Open File False"); //如果打开失败则提示
}
QDomDocument doc; //把文件内容写入到doc中
doc.setContent(&file);
file.close(); //关闭文件
QDomElement root = doc.documentElement();
QDomNode node = root.firstChild();
while (!node.isNull())
{
QDomElement element = node.toElement();
if(!element.isNull())
{
QDomNamedNodeMap list = element.attributes();
for(int i = 0; i<list.count(); i++)
{
xmlDate.insert(list.item(i).nodeName(),list.item(i).nodeValue());
qDebug()<<list.item(i).nodeName();
}
}
node = node.nextSibling();
}
return xmlDate;
}
bool DLFileIOSystem::DJWriteXML()
{
qDebug()<<"XML 读取函数执行";
QFile file("./config.xml"); //打开XMl文件
if(!file.open(QFile::ReadWrite | QFile::Text | QFile::Truncate)) //这里需要注意的是,写入文件的时候需要以覆盖的方式
{
QMessageBox::information(NULL,"Title","Open File False"); //如果打开失败则提示
}
QTextStream out(&file);
QTextCodec *codec = QTextCodec::codecForName("gbk");
out.setCodec(codec);
QDomDocument doc; //把文件内容写入到doc中
doc.setContent(&file);
QDomElement root = doc.createElement("Root");
QDomElement date = doc.createElement("XMLDate");
QStringList list = xmlDate.keys();
for(int i = 0; i<list.count(); i++)
{
date.setAttribute(list.at(i),xmlDate.value(list.at(i)).toString());
}
root.appendChild(date);
QString strHead("version = \"1.0\" encoding = \"GB2312\"");
doc.appendChild(doc.createProcessingInstruction("xml",strHead));
out<<doc.toString();
root.save(out,2);
file.close(); //关闭文件
QMessageBox::warning(NULL,"提示","文件写入完成");
return true;
}
一个读文件,一个写文件
这里要参考以为牛逼大大的文章
http://blog.csdn.net/sbisyju/article/details/8701561#comments
剩下的就不用在说了,看到前面
这里还有一个问题了就是,前几天没有弄出来的一点,这里要说明一下,
-
// property JSON date : FileIOSystem.DLReadFile()
-
-
// property QJSON name: value
-
-
property var xmljson: FileIOSystem.DLReadXML()
只有最后一种方式是正确的,把C++传来的QJsonObject定义成一个json属性
完了就可以在后面的内容中愉快的使用了
代码结构
文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。
原文链接:dreamlife.blog.csdn.net/article/details/71694709
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)