Qt用Dom写XML文件

Qt xml:DOM写可以直接用EXCEL打开的xml文件 前一篇写了如何用DOM方式生成XML文件,生成的文件可以直接用浏览器打开,可以选择EXCEL打开,将数据导入到EXCEL中,不能直接用EXCEL打开。但是有时候有需求需要不看到xml文件源码,而只希望看到其中的内容,比如直接双击就可以在EXCEL中显示,此篇就是实现将table列表中的内容直接导出到可以用EXCEL打开的xml文件中。其实生成过程是一样的 ,就是需要按照EXCEL的XML源码方式式 阅读详情

依赖的头文件

    #include <QFile>   
    #include <QString>  
    #include <QtXml>  
    #include <QDomDocument>  
    #include <QDateTime>  
示例代码1:
    QFile file("write.xml");  
    if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate));  
    QDomDocument doc;  
    QDomProcessingInstruction instruction;  
    instruction = doc.createProcessingInstruction("xml","version=/"1.0/" encoding=/"UTF-8/"");  
    doc.appendChild(instruction);  
    QDomElement root=doc.createElement(tr("data"));  
    doc.appendChild(root);  
    QDomElement StartWeek=doc.createElement(tr("startweek"));  
    QDomElement ReadNumber=doc.createElement(tr("readnum"));  
    QDomElement AlarmTime=doc.createElement(tr("alarm"));  
    QDomElement AlarmPrompt=doc.createElement(tr("prompt"));  
    QDomText text;  
    text=doc.createTextNode("2010-03-01");  
    StartWeek.appendChild(text);  
    text=doc.createTextNode("2");  
    ReadNumber.appendChild(text);  
    text=doc.createTextNode("10");  
    AlarmTime.appendChild(text);  
    text=doc.createTextNode("vibration");  
    AlarmPrompt.appendChild(text);  
    root.appendChild(StartWeek);  
    root.appendChild(ReadNumber);  
    root.appendChild(AlarmTime);  
    root.appendChild(AlarmPrompt);  
    QTextStream out(&file);  
    doc.save(out,4);  
    file.close();  
示例代码2:
    //写xml操作。sXmlFilePath:要写入的xml文件路径  
    int CAppletGenerator::addTaskMenuTreeItem(QString sXmlFilePath)  
    {  
        QFile file(sXmlFilePath);  
        if (!file.open(QFile::ReadOnly | QFile::Text)) {  
            return -1;  
        }  
      
        QDomDocument domDocument;  
        if (!domDocument.setContent(&file, true)) {  
            file.close();  
            return -1;  
        }  
        QDomElement tree      = domDocument.documentElement();  
        QDomElement firstItem = tree.firstChildElement();  
      
        //在firstitem上添加一个节点  
        QDomElement secondItem = domDocument.createElement("item");  
      
        //获取当前时间,用于节点的唯一性id  
        QDateTime dt;  
        QTime time;  
        QDate date;  
        dt.setTime(time.currentTime());  
        dt.setDate(date.currentDate());  
        QString currentDate = dt.toString("yyyyMMddhhmmss");  
      
        //为节点添加属性  
        secondItem.setAttribute("id",currentDate);  
        secondItem.setAttribute("select","1");  
        secondItem.setAttribute("text","节点");  
      
        //添加元素节点到父节点  
        firstItem.appendChild(secondItem);  
        file.close();  
      
        QFile fileModify(sXmlFilePath);  
        if (!fileModify.open(QFile::WriteOnly | QFile::Text)){  
            return -1;  
        }  
      
        //核心代码:Dom方式写xml文件  
        QTextStream out(&fileModify);  
        domDocument.save(out,4);  
        fileModify.close();  
        return 0;  
      
    }  

Qt 两种方式对XML文件进行读写 XML文件是描述数据结构的可读文件,一种可以将数据存储在一个可以存储,搜索和共享格式中的方法,Qt中提供了QtXml模块来进行对XML文件的处理,本文主要介绍其中的DOM方式和文件流Stream方式。通过QFileDIalog::getOpenFileName方法获取文件名称,通过isEmpty进行选中文件判断,通过open进行打开文件判断,不成功弹出警告窗口。使用setContent()进行XML文件的检测,将XML文件解析成一个DOM树,并保存在内存中。 阅读详情

相关推荐

Qt开发(四) DOM读、写XML

1. XML DOM简介 DOM( Document Object Model 文档对象模型) 是一种用来解析 XML 文档的标准应用程序编程接口,它由万维网(W3C)所开发以及所推荐的标准。DOM 定义了所有文档元素的对象和属性,以及访问它们的方法(接口),它把 XML 文件表示成 内存 中的一棵树。使得我们可以按照需要去遍历这个 DOM 树,同时也可以对其进行修改操作,并且将其 作为 XM...

Postgres 数据库内核开发工程师 1165

qt读写xml文件

将整个 XML 文档读入内存,构建成一个树结构,允许程序在树结构上向前向后移动导航,这是与另外两种方式最大的区别,也就是允许实现多次解析器(对应于前面所说的一次解析器)。特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一次性处理 XML 文档,期间不会有反复的情况,也就是不会读完第一个标签,然后读第二个,读完第二个又返回去读第一个,这是不允许的);获取含有属性节点的属性。//获取根/子标签的标签名字,对应于createElement函数的参数。

baidu_16370559的博客 6270

数模【Mathematica(安装、入门方法、基本计算、基本图形、创建互动模型、利用数据、幻灯片演示、完整实例)】

Mathematica(安装and激活、入门方法、基本计算、基本图形、创建互动模型、利用数据、幻灯片演示、完整实例) Mathematica_11.3.0 安装教程 Mathematica11.3 激活 P1 笔记本 P2 入门方法 P3 基本计算 P4 基本图形 P5 创建互动模型 P6 利用数据 P7 演示 P8 完整实例

upward 12万+

qt-xml文件操作

XML(eXtensible Markup Language)文件因其结构化和易于理解的特性,被广泛用于数据交换和存储。Qt框架提供了强大的支持来处理XML文件,主要包括DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式,以及从Qt 4.3开始引入的基于流的QXmlStreamReader和QXmlStreamWriter类。本文将详细介绍如何使用Qt的DOM方法来进行XML文件的创建、读取、添加、删除和更新操作。 2.ui界面 2.

qq_57041630的博客 1013

六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介

毕业设计做了六轴机器人相关的课题,做完之后学到很多,在这里分享一下。

weixin_47849087的博客 2万+

Linux内存压力测试工具【memtester】详且精

对Linux下的压力测试工具memtester有一个比较人性化的概述,以及避坑心得。

weixin_44118923的博客 1万+

Qt读写XML文件(含源码+注释)

XML文件使用QDomDocument对象写入和读取时需要注意如下事项,在写入时需要添加QDomText对象设置值;而在读取时需要读取其首个子节点,并获取其中的值。(越复杂的文件结构,需要更复杂的代码去读和写)

呓语煮酒的博客 388

【密码专栏】超强进阶:PLONK VS Groth16(上)

前言 前文《天冷了,干了这碗“零知识证明”鸡汤》对「零知识证明学习」作了一个形象化的比喻:炖鸡汤。那么本系列的主要内容可以简单概括为《论高压锅炖鸡汤的一百种方法》之方法二。在学会了“清炖鸡汤”之后,不如来一口“阿胶鸡汤”补补脑细胞吧! 正如鸡汤不同风味之间各具千秋,不同的zk-SNARK方案也各有所长。zk-SNARK方案可以被分为【通用】与【非通用】zk-SNARK,PLONK与Groth16分别是其中的典型代表。通过本系列,我们将对PLONK算法内容作简要介绍,并指出PLONK和Groth16算法思路上

Hyperchain的博客 1805

Qt对xml文件进行读、写、修改等

TokenType:xml数据的枚举类型,Qt中xml数据是通过一系列标记来表示的,每个标记可能代表一个元素、属性、文本等。用于读取xml数据流中的下一个标记(token)并返回其类型,以便可以根据token类型进行相应的处理,比如 解析元素、属性、文本等。此代码将加载XML文件,找到要修改的节点和属性,然后将File属性改为FilePath,最后保存修改后的XML文件。writeAttribute(“id”, “001”):为元素写入属性,xxxx(“属性名”, “属性值”)

qq_47317448的博客 4641

Android TV 遥控器全链路按键适配指南:从物理按键到应用响应

本文深入探讨了Android TV遥控器按键适配方案,涵盖红外和蓝牙遥控器的工作原理及完整适配流程。红外遥控部分详细介绍了从硬件调试、驱动适配到键值映射配置的方法,并提供了实用的调试命令。蓝牙遥控器部分解析了HID协议和报告描述符,给出内核层与Android层的适配代码示例。文章还介绍了游戏手柄、语音遥控器等特殊外设的适配技巧,并提供了系统级调试工具和内核级调试方法,为开发者提供了一套完整的Android TV输入设备适配解决方案。

学无止境 1266

4、高级认证解决方案:Active Directory、LDAP、RADIUS和TACACS+深度解析

本文深入解析了多种高级认证解决方案,包括Active Directory、标准LDAP、RADIUS和TACACS+,涵盖其技术优势、配置步骤及适用场景。同时介绍了如何实现通用用户管理,包括使用第三方认证解决方案和ADSI自助用户管理。通过实际案例部署,展示了如何高效、安全地管理大规模用户认证与权限控制,为企业安全架构提供参考。

o4p5q6r7s的博客 306

qt读写xml文件(DOM和SAX两种方式)

qt读写xml文件,包含DOM和SAX两种方式。分享demo工程代码,提供demo工程链接下载,亲测可用。

linyibin_123的博客 2370

PCIe 6.0 – 关于 PCI Express Gen6 您需要知道的一切

幸运的是,PCIe 6.0 FEC 足够轻,对延迟的影响最小。在电气层上,PCIe 6.0 使用 PAM4 信号(“四级脉冲幅度调制”),每个时钟周期将 2 位组合为 4 个幅度级别(00、01、10、11),与 PCIe 5.0 和前几代相比,它使用 NRZ 调制,每个时钟周期 1 位和两个幅度级别 (0, 1)。虽然 PAM4 信号更容易出错,但由于调制技术的性质,与 PCIe 5.0 相比,通道损耗不受影响,因此 PCB 上 PCIe 6.0 信号的范围将与 PCIe 5.0 相同。

qq_43416206的博客 3433

Qt Dom方式写xml,以及保存到xml文件中

#include<QString> #include<QDebug> #include<stdio.h> #include<stdlib.h> #include<QDomDocument> #include<QtXml> //XMLDOM的方式 intmain(intargc,cha...

weixin_34336526的博客 882

华为OD机试 - 机器人活动区域(Java 双机位C卷 200分)

现有一个机器人,可放置于 M × N的网格中任意位置,每个网格包含一个非负整数编号。之后M行表示网格数值,每行N个数值(数值大小用k表示),数值间用单个空格分隔,行首行尾无多余空格。说明:图中绿色区域,相邻网格差值绝对值都小于等于1,且为最大区域,对应网格点数目为6。M、N、k均为整数,且1

学Java,找哪吒 916

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Qt Dom操作xml文件写操作

Dom写入xml文件操作,首先在 .pro 文件中添加以下代码:然后才开始编辑:先解决Qt中文乱码问题:加入以下代码。添加头文件:1 , 首先使用QDomDocument类在内存中生成一棵DOM树,然后添加xml声明2 , 声明添加后,开始添加节点和元素 先将根节点(root)添加到doc树中,然后将子节点和元素,放在根节点下, 也就是说,最后只需要将根(root)节点添加到树中即可。 先添加根节点: 3 , 添加子节点和元素: 4 ,添加各节点文本内

m0_72753035的博客 430

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

linux编写xml文件夹,Qt Dom方式写xml,以及保存到xml文件中

#include#include#include#include#include#include//XMLDOM的方式intmain(intargc,char*argv[]){QByteArrayarray;QDomDocumentdoc;QDomProcessingInstructioninstruction;QDomTexttext;instruction=d...

weixin_39620679的博客 318

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Qt开发:DOM解析xml实现读、写、增、删、改

版权声明:原创文章如需转载,请在左侧博主描述栏目扫码联系我并取得授权,谢谢 qt提供了三种方式解析xml,不过如果想实现对xml文件进行增、删、改等操作,还是DOM方式最方便。 项目配置pro文件里面添加QT+=xmlinclude <QtXml>,也可以include <QDomDocument>pro文件:QT += core xml QT ...

小胖七少爷的博客 431

Qt之XML读写操作——含Demo

Qt之XML读写操作

ManagerUser的博客 2652

Qt之QDomDocument操作xml文件-模拟ini文件存储

文章目录一、背景二、QSettings访问ini文件三、xml文件读写四、示例程序下载 一、背景 不得不说Qt是一个很强大的类库,不管是做项目还是做产品,Qt自身封装的东西就已经非常全面了,我们今天的这篇文章就是模拟了Qt读写ini文件的一个操作,当然是由于一些外力原因,我们决定自己来完善下这个功能。好的,那么现在就让我们隆重的请出今天的主角–QSettings。这个类能干嘛呢? 答案就是:读写注...

朝十晚八 832

Qt设计XML生成器

最近也不知道出于什么样的想法,想自己做一个XML生成器,顾名思义,就是给一些输入,然后输出XML文件。断断续续捣鼓了数天,算是差不多了。 基本思路是先获取用户输入生成一棵树,然后根据生成的数形成XML格式的文件。关于树控件编辑器,参考了Qt自带“编辑树窗口部件”,如下图展示。 关于写XML文件,本设计采用DOM的方式,DOM 一次性读入整个 XML 文档,在内存中构造为一棵树(被称为 DOM 树...

華仔的博客 2687

Qt采用Dom方式读写XML

XML文件如下所示: <?xml version="1.0" encoding="GBK"?> <Catalog name = "树形目录"> <View id = "default"> <任务年度/> <任务编号/> ...

weixin_30924087的博客 146

Qt DOM读写XML文件

QXmlStreamReader:一种快速的基于流的方式访问良格式 XML 文档,特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一次性处理 XML 文档,期间不会有反复的情况,也就是不会读完第一个标签,然后读第二个,读完第二个又返回去读第一个,这是不允许的); DOM(Document Object Model):将整个 XML 文档读入内存,构建成一个树结构,允许程序在树结构上向前向后移动导航,这是与另外两种方式最大的区别,也就是允许实现多次解析器(

ctrigger的专栏 411

Qt使用Dom操作XML文件

Qt中对于XML文件的写入有两种方式,一个是使用QXmlStreamWriter,另一个则为使用Dom。stream流的形式相对来说更加灵活,而且适合处理大文件。Dom方式由于是将内容加载到了内存中进行操作,所以对于小内存设备则有一定得局限性。   下面给出一个用Dom写xml文件的例子。   假设定义的节点如下   [xhtml] view plaincopyprin

fqx111的专栏 597

QT之XML文件解析DOM

QT使用DOM方式解析XML文档

qq_39295354的博客 1621

Qt 读取 XML 文件的方法

本文参考了多位大佬博客,以下是链接。 转自:(124条消息) Qt浅谈之二十八解析XML文件_乌托邦-优快云博客 转自:(124条消息) 利用 Qt 读取 XML 文件的方法_Ivan 的专栏-优快云博客_qt读取xml 一、简介 QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX。DOM(Document ObjectModel):将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些。SAX(Simple APIfor XML):一种事件驱...

pmghy1的博客 2万+
上一篇: Direct3D 10教程9:DXUT中的网格
下一篇: DirectX 10教程1:在Visual Studio中设置DirectX 10
jake2012
博客等级 码龄17年 32粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值