使用tinyxml解析和修改XML文件
首先要清楚XML文件包含哪些元素:
他是由元素、文本或者两者混合物组成。元素可以拥有属性,元素是指从开始标签到结束标签的部分。
<?xml version="1.0" encoding="UTF-8" ?>
<books><book id="1001"><name>面纱</name><info>请记住我,虽然再见必须说</info></book><book id="1002"><name>人生第一次</name><info>愿他们、我们的一生平淡而有意义</info></book>
</books>
开始操作
1.在网上下载到tinnyxml的源码

2.导入tinyxml的头文件
#include "./TinyXML/tinyxml.h"
解析方法:
QString XMLreadwrite::parseIPAddress() const
{QList<QString> nodeList;nodeList.append("net");nodeList.append("fix_ip");QString attrText = "ip";TiXmlNode *pNode = (TiXmlNode*)FindTextNode(nodeList);QString data = ParseNodeData(pNode, attrText);return data;
}
修改方法:
void XMLreadwrite::ModifyNodeData(TiXmlNode *pNode, QString text, QString data) const
{for(pNode = pNode->FirstChild();pNode;pNode = pNode->NextSibling()){if(QString(QLatin1String(pNode->Value())) == text){qDebug()<<"......."<<text<<data;const char cData[1024] = {0};memcpy((void*)cData,data.toStdString().c_str(),data.size());//首先清除所有文本pNode->Clear();//然后插入文本TiXmlText *pValue = new TiXmlText(cData);pNode->LinkEndChild(pValue);qDebug()<<"Modified successfully"<<QString(QLatin1String(pNode->ToElement()->GetText()));}}
}
解析例子:
QString XMLreadwrite::parseCodeFormat() const
{QList<QString> nodeList;nodeList.append("param_video");QString attrText = "attr_format";TiXmlNode *pNode = (TiXmlNode*)FindTextNode(nodeList);QString nodeAttr = QString(QLatin1String(pNode->ToElement()->Attribute("name")));QString data = "";if(nodeAttr == "Visible"){data = ParseNodeData(pNode, attrText);}return data;
}
修改例子:
void XMLreadwrite::modifyCodeFormat(QString data)
{QList<QString> nodeList;nodeList.append("param_video");QString attrText = "attr_format";TiXmlNode *pNode = (TiXmlNode*)FindTextNode(nodeList);QString nodeAttr = QString(QLatin1String(pNode->ToElement()->Attribute("name")));if(nodeAttr == "Visible"){ModifyNodeData(pNode, attrText, data);}
}
相关文章:
使用tinyxml解析和修改XML文件
首先要清楚XML文件包含哪些元素: 他是由元素、文本或者两者混合物组成。元素可以拥有属性,元素是指从开始标签到结束标签的部分。 <?xml version"1.0" encoding"UTF-8" ?> <books><book id"1001">&…...
[Docker实现测试部署CI/CD----相关服务器的安装配置(1)]
目录 0、CI/CD系统最终架构图规划IP地址 1、git配置Git下载pycharm配置gitidea配置git 2、GitLab安装与配置主机要求拉取镜像定义 compose.yml启动gitlab浏览器访问并修改密码查看登录密码修改密码 3、SonarQube 安装与配置拉取镜像修改虚拟内存的大小启动SonarQube登录 SonarQ…...
【自动化运维】编写LNMP分布式剧本
目录 一 playbook编写LNMP1.1环境设置1.2编写Nginx剧本1.3、编写Mysql剧本1.4准备PHP剧本 一 playbook编写LNMP 1.1环境设置 ip服务192.168.243.100ansible192.168.243.102nginx192.168.243.103PHP192.168.243.104mysql 1.2编写Nginx剧本 1.编写Nginx源 mkdir -p /etc/ans…...
用Rust实现23种设计模式之单例
话不多说,上代码! 1. 使用Arc Mutex 在这个例子中,我们使用了 Arc (原子引用计数)和 Mutex (互斥锁)来实现线程安全的单例。通过 get_instance 方法,我们可以获取到单例实例&…...
小米平板6将推14英寸版!与MIX Fold 3同步推出
今天,知名数码博主数码闲聊站爆料消息,称小米平板6将推出一款Max版本,预计与小米MIX Fold 3同步推出。 据介绍,小米平板6 Max将是小米首款14英寸大屏的旗舰平板,平板搭载骁龙8处理器,在性能释放、影音表现、…...
webpack 的一点知识
多个入口共享多个模块 在使用webpack搭建多页面应用时候需要多个入口,这个时候需要考虑到模块共享问题了 可以使用entry.dependOn 来处理 entry: {home: {import: "./pages/home/index.js",// 其中vendors里边使用到模块,不会打入home对应的…...
Python 双目摄像机控制(windows + linux)
一、Windows 下载 Download libusb-win32-devel-filter-1.2.6.0.exe (libusb-win32) 安装,在弹出框中选择摄像机usb设备 pip install pyusb pip install libusb 代码如下,注意如果报错要以管理员权限运行: import cv2 import usb.corecam…...
mybatisplus实现自动填充 时间
mybatisplus实现自动填充功能——自动填充时间 数据库表中的字段 创建时间 (createTime)更新时间 (updateTime) 每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每…...
P5732 【深基5.习7】杨辉三角
题目描述 给出 n ( n ≤ 20 ) n(n\le20) n(n≤20),输出杨辉三角的前 n n n 行。 如果你不知道什么是杨辉三角,可以观察样例找找规律。 输入格式 输出格式 样例 #1 样例输入 #1 6样例输出 #1 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 11.题目…...
ubuntu调整路由顺序
Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称,更改网卡eth1的跃点数(metric值)为0(数值越小…...
集成学习算法是什么?如何理解集成学习?
什么是集成学习? 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。 机器学习的两个核心任务 任务一࿱…...
npm配置最新淘宝镜像
目录 1、设置淘宝镜像2、查看源 1、设置淘宝镜像 默认的官方镜像:https://registry.npmjs.org,切换国内淘宝镜像,访问下载更快。 npm config set registry https://registry.npmmirror.com/其他,如pnpm: pnpm confi…...
网络基础1
文章目录 网络基础11. 计算机网络背景1.1 网路发展1.2 认识 "协议" 2. 网络协议初识2.1 协议分层2.2 OSI七层模型2.3 TCP/IP五层(或四层)模型协议栈与OS的关系 3. 网络传输基本流程3.1 同一个局域网两台主机通信3.2 同一个路由器的两个子网通信 4. 网络中的地址管理4…...
2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
前言 (1)因为博客编辑字数超过1W字会导致MD编辑器非常卡顿。所以我将发挥题和基础题的思路拆开了。 (2)更新日记: <1>2023年8月4日,9点20分。分离发挥题思路和基础题思路,增加了博主Huiye…...
61 # http 数据处理
node 中的核心模块 http 可以快速的创建一个 web 服务 const http require("http"); const url require("url");// req > request 客户端的所有信息 // res > respone 可以给客户端写入数据 const server http.createServer();server.on("r…...
模版下载和Excel文件导入
模版下载 模版下载 模版下载 /*** 生成模版** param* return AppResponse*/public AppResponse ExcelFile() throws IOException {// 创建一个新的Excel工作簿Workbook workbook new XSSFWorkbook();// 创建一个工作表Sheet sheet workbook.createSheet("页面拨测模板&…...
Datax 数据同步-使用总结(一)
1,实时同步? datax 通常做离线数据同步使用。 目前能想到的方案 利用 linux 的定时任务时间戳的方式做增量同步。 2,同步速度快不快? 单表同步速度还是挺快的 但是如果遇到复杂的 sql 查询,其同步效率,…...
代码随想录算法训练营第九天| 232.用栈实现队列,225.用队列实现栈
232. 用栈实现队列 232.用栈实现队列 这里用两个栈来模拟队列以此实现队列的先进先出, 注意点 1.dump()方法将stackin的元素移入到stackout的操作,是要将stackin的全部元素放到stackout中,所以用while循环判断 stackIn是否为空 2.新建栈…...
求解二次方程
描述 编写一个程序,实现求解形如ax^2 bx c 0的二次方程的根。要求使用三个函数分别计算b^2 - 4ac大于0、等于0和小于0时的根,并在主函数中输出结果。 输入 输入三个浮点数a、b和c,分别表示二次方程的系数。 输出 输出二次方程的根&am…...
【hive 运维】hive注释/数据支持中文
文章目录 一. 设置mysql中的hive库二. hive-site.xml 设置三. 测试 hive支持中文需要关注两个方面: 设置hive 元数据库中的一些表设置hive-site.xml. 一. 设置mysql中的hive库 use hivedb; alter table TBLS modify column TBL_NAME varchar(1000) character se…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
