//--------------------读----------------------------------------------- QString filename = "D:/zhao/qt/tryxml-build-desktop-Qt_4_8_0_for_Desktop_-_MinGW__Qt_SDK__Debug/history.xml"; qDebug() << filename; QFile file(filename); if(!file.open(QFile::ReadOnly | QFile::Text)) { qDebug() << "Error: Cannot read file" << filename << ": " << file.errorString(); }else { qDebug() << "succeed"; } QString errorStr; int errorLine; int errorColumn; QDomDocument doc; if(!doc.setContent(&file, false, &errorStr, &errorLine, &errorColumn)) { qDebug() << "Error: Parse error at line" << errorLine << ", " << "column " << errorColumn << ": " << errorStr; } QDomElement root = doc.documentElement(); if(root.tagName() != "history") { qDebug() << "error"; } QDomNode child = root.firstChild(); while(!child.isNull()) { if(child.toElement().tagName() == "data") { QDomNode grandChild = child.firstChild(); while(!grandChild.isNull()) { qDebug() << grandChild.toElement().tagName() << " " << grandChild.toElement().text(); grandChild = grandChild.nextSibling(); } } child = child.nextSibling(); } //root.appendChild() file.close(); //-----------------------结束读------------------------------ //----------------------追加----------------------------------------- //QStringList attribs = ""; // 由用户指定 QDomElement dataNode = doc.createElement("data"); //carNode.setAttribute("ISBN", isbn); // isbn由用户指定 //此处开始处理attribs字符串列表中的内容 QDomText textNode = doc.createTextNode("1989"); // 取出每一个字符串 QDomElement timeNode = doc.createElement("time"); //attribNode.setAttribute("number", attribNumber); timeNode.appendChild(textNode); dataNode.appendChild(timeNode); // 属性结束 root.appendChild(dataNode); //QDomNodeList historyNode = doc.elementsByTagName("history"); //historyNode.item(0).appendChild(dataNode); // 写入XML文件中 if (file.open(QIODevice::WriteOnly)) { QTextStream stream(&file); //historyNode.item(0).save(stream, 4); doc.save(stream, 4); file.close(); } //------------------------------结束追加----------------------------------- //-----------------------------新建------------------------------------------ QString backupname = "D:/zhao/qt/tryxml-build-desktop-Qt_4_8_0_for_Desktop_-_MinGW__Qt_SDK__Debug/backup.xml"; //qDebug() << filename; QFile backup(backupname); QDomDocument backupDoc; //要先open file backup.open(QIODevice::WriteOnly| QFile::Text); QDomElement rootNode = backupDoc.createElement("history"); //QDomText tNode = doc.createTextNode("1989"); // 取出每一个字符串 //rootNode.appendChild(tNode); backupDoc.appendChild(rootNode); QTextStream backupStream(&backup); backupDoc.save(backupStream, 4); backup.close(); //--------------------------------结束新建--------------------------------
相关推荐
【Qt】DOM读取XML文档.rar
QT_DOM方式操作xml文件增删改查 博文参考: https://txwtech.blog.csdn.net/article/details/126321336?spm=1001.2014.3001.5502
QT使用SAX读取xml高效-快速.rar SAX(Simple API for XML) 如果你只想读取并显示整个XML文档,那么SAX是很好的选择,因为它提供了比DOM更简单的接口,并且它不需要将整个XML文档一次性读入内存,这样便可以用来读取...
qt使用DOM和SAX两种方式读写XML文件,代码工程demo,亲测可用
被广泛运用于数据交换和数据存储(虽然近年来 JSON 盛行,大有取代 XML 的趋势,但是对于一些已有系统和架构,比如 WebService,由于历史原因,仍旧会继续使用 XML)。XML 由 World Wide Web Consortium(W3C)发布...
基于QT5 qt 处理XML的三种方式 dom sax xmlstream 5个小例子 参考https://blog.csdn.net/p942005405/article/details/79743221
自己编写的代码经过测试,可以运行!(包含.exe文件)可以为自己编程提供思路参考~;希望对你有帮助!
QT5.9.1 + MSVC2015 一个简单解析XML文件的例子,很简单;
利用Qt读取xml文件,一种是debug下的xml文件,一种是任意文件夹下的xml文件,并用tableWidget和tableView两种方式读取。这里的xml文件是学生成绩,所以还完成了平均分,总分,降序排列的操作。
【Qt】DOM创建和操作XML文档.rar
qtcreate读取xml文件,对xml详细的操作。
QT读取xml例子 里面有一个Index.xml 请把它移动到你的编译目录,否则你自己创建一个xml也行
基于QT的QDomDocument封装的XML操作,显示类。使在QT中操作XML比较方便,快捷。如果觉得那里封装的不好,欢迎提出宝贵意见,建议,我再改正。
QT读取xml文件将所有节点保存到treewidget中
基于QT实现XML文件读写,解析操作
此程序实现的功能:利用QT库提供的DOM方式来读取和解析数字化保护装置的XML格式的配置文件。
Qt读写Xml文件;QTreeWidget加载显示Xml文件内容;QTreeWidget项导出保存为Xml;QTreeWidget项实现可拖动
Qt操作XML文档(增删改查),对应文章介绍:https://lizhifun.blog.csdn.net/article/details/112853280
Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件
qt 实现xml的完整操作 遍历属性等 非常实用 项目中多次用