当前位置: 首页 > news >正文

网站制作关键字排名网站怎么做有创意

网站制作关键字排名,网站怎么做有创意,个人怎么做淘宝客网站,可以做旅行计划的网站在 Qt 中读写 XML 文件,常用的方式有以下几种,每种方式的特点、适用场景和优缺点如下: 一、Qt 读写 XML 的几种方式对比 方式主要类特点优点缺点适用场景QDomDocumentQDomDocument / QDomElement / QDomNodeDOM方式,加载整个XML到…

在 Qt 中读写 XML 文件,常用的方式有以下几种,每种方式的特点、适用场景和优缺点如下:


一、Qt 读写 XML 的几种方式对比

方式主要类特点优点缺点适用场景
QDomDocumentQDomDocument / QDomElement / QDomNodeDOM方式,加载整个XML到内存中,以树形结构操作操作直观,适合频繁修改节点、属性内存占用较大,大文件处理慢结构复杂、需要随机访问的XML文件
QXmlStreamReader/WriterQXmlStreamReader / QXmlStreamWriter流式方式,按顺序读取/写入内存占用小,速度快不能随意跳转或修改已读取的内容大文件、只读/只写、顺序处理
QXmlSimpleReader (SAX)QXmlSimpleReader事件驱动解析(类似SAX)性能高,适合超大文件使用麻烦,写法冗长超大XML文件的只读解析

选择建议

  • 需要随机读写和修改QDomDocument

  • 需要顺序快速读写QXmlStreamReader/Writer

  • 超大文件且只解析:QXmlSimpleReader

👉 综合来看:对于常见的配置文件、结构化数据,推荐使用 QDomDocument,因为代码简洁、易维护。


二、推荐方案:QDomDocument

以下提供一个Qt Demo 工程,演示如何使用 QDomDocument 读写 XML 文件。

工程下载地址https://download.csdn.net/download/2501_91893428/91940573

1️⃣ Demo 工程结构

 
QtXmlDemo/
├── main.cpp
├── xmlreaderwriter.h
├── xmlreaderwriter.cpp
└── demo.xml  (示例xml文件)

2️⃣ 示例 XML 文件(demo.xml)

 
<?xml version="1.0" encoding="UTF-8"?>
<config><user name="Keven" age="30"/><settings theme="dark" language="en"/>
</config>

3️⃣ 代码实现

xmlreaderwriter.h
 
#ifndef XMLREADERWRITER_H
#define XMLREADERWRITER_H#include <QObject>
#include <QDomDocument>class XmlReaderWriter : public QObject
{Q_OBJECT
public:explicit XmlReaderWriter(QObject *parent = nullptr);bool readXml(const QString &filePath);   // 读取XMLbool writeXml(const QString &filePath);  // 写入XML
};#endif // XMLREADERWRITER_H
xmlreaderwriter.cpp
 
#include "xmlreaderwriter.h"
#include <QFile>
#include <QDebug>XmlReaderWriter::XmlReaderWriter(QObject *parent) : QObject(parent) {}bool XmlReaderWriter::readXml(const QString &filePath)
{QFile file(filePath);if (!file.open(QIODevice::ReadOnly))return false;QDomDocument doc;if (!doc.setContent(&file)) {file.close();return false;}file.close();// 根节点QDomElement root = doc.documentElement();qDebug() << "Root Element:" << root.tagName();// 遍历子节点QDomNode node = root.firstChild();while (!node.isNull()) {if (node.isElement()) {QDomElement elem = node.toElement();qDebug() << "Tag:" << elem.tagName()<< "Name:" << elem.attribute("name")<< "Age:" << elem.attribute("age")<< "Theme:" << elem.attribute("theme")<< "Language:" << elem.attribute("language");}node = node.nextSibling();}return true;
}bool XmlReaderWriter::writeXml(const QString &filePath)
{QDomDocument doc;QDomProcessingInstruction instr =doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");doc.appendChild(instr);QDomElement root = doc.createElement("config");doc.appendChild(root);// 添加user节点QDomElement user = doc.createElement("user");user.setAttribute("name", "LuoXiao");user.setAttribute("age", "32");root.appendChild(user);// 添加settings节点QDomElement settings = doc.createElement("settings");settings.setAttribute("theme", "light");settings.setAttribute("language", "zh");root.appendChild(settings);QFile file(filePath);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))return false;QTextStream out(&file);doc.save(out, 4); // 缩进4空格file.close();return true;
}
main.cpp
 
#include <QCoreApplication>
#include "xmlreaderwriter.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);XmlReaderWriter xml;QString path = "demo.xml";// 写入if (xml.writeXml(path))qDebug() << "XML写入成功:" << path;// 读取if (xml.readXml(path))qDebug() << "XML读取成功";return a.exec();
}

4️⃣ 运行结果示例

 
XML写入成功: "demo.xml"
Root Element: "config"
Tag: "user" Name: "LuoXiao" Age: "32" Theme: "" Language: ""
Tag: "settings" Name: "" Age: "" Theme: "light" Language: "zh"
XML读取成功

✅总结

  • QDomDocument 适合常规配置文件、结构化数据,代码清晰易懂。

  • QXmlStream 更适合超大文件、高性能需求。

http://www.dtcms.com/a/440985.html

相关文章:

  • 温州免费做网站网站开发人员 怎么保存
  • 移动端网站开发公司网页制作流程
  • 莒县网站制作公司怎样将建设银行网站加入可信站
  • 建设产品网站课程wordpress 页面标签
  • 网站建设制作深圳湘潭seo优化
  • 最简单的做网站工具优度公司做的网站
  • 静态网站 后台公众号平台登录入口官网
  • 论述电子商务网站建设的流程阿里云 网站
  • 建设银行成都官网招聘网站怎么把网站上传到域名
  • 宿迁华夏建设集团网站新国标小区网络建设
  • 怎样自己建个人网站成都 高端网站建设
  • 河南县公司网站建设双通网络网站建设价格
  • 哈尔滨 建网站优秀的建筑设计作品
  • 做软装有什么网站找图片led行业网站建设方案
  • 创建网站的基本流程访问网站 流程图
  • 通州 网站建设郑州网站优化多少钱
  • 购物网站设计的目的建设银行科技中心网站首页
  • 代做网站地图如何分析网站建设
  • 企业网站建设新站各种网站解决方案
  • 网站建设开发服务费会计科目php网站开发综合案例
  • 深圳专业网站建设多少钱招商网站建设推广
  • 深圳 做网站自己做网站怎么样
  • 网站建设中 页面河南省建设局网站首页
  • 上海做网站最专业服装行业网站建设方案
  • 做网站要用什么计算机语言wordpress图片缩略图不显示图片
  • wordpress网站服务器配置百度推广深圳分公司
  • 深圳龙岗建站公司英文外贸商城网站设计
  • 北京珠宝网站建设电商论坛
  • 国外申请域名的网站哪里有人收费做网站
  • 模板建站费用张雪峰数字媒体技术