Qt-QML-C++交互实现文件IO系统-后继-读取XML文件和创建XML文件

简介: 在前面两篇中,大致完成了一个文件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

           {

               xmlDate.insert(list.item(i).nodeName(),list.item(i).nodeValue());

               qDebug()<

           }

       }

       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

   {

       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<

   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属性

 

完了就可以在后面的内容中愉快的使用了

image.png

代码结构


目录
相关文章
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
78 1
|
1月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
1月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
28 2
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
132 8
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
31 3
|
2月前
|
搜索推荐 索引
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
【文件IO】实现:查找文件并删除、文件复制、递归遍历目录查找文件
44 2
|
2月前
|
编解码 Java 程序员
【文件IO】文件内容操作
【文件IO】文件内容操作
60 2
|
2月前
|
存储 Java API
【文件IO】文件系统操作
【文件IO】文件系统操作
53 1
|
27天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
49 2
|
1月前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
94 5