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

XML语言数据读写理解15

现在该实现删除函数了。删除的方法是:给定第几个节点的索引(比如索引2),我们把第三个(0 1 2)节点删除。

结合上一章程序:

TsfunGroup tg;
tg.readXML("ss");
//tg.showXML();
	
NodeTS nts(0.01923,0.1023,QColor(123,32,67));
tg.addNodeToItem("maxMode",nts);
tg.deleteNodeInItem("maxMode", 3);
tg.deleteNodeInItem("maxMode", 5);
tg.writeXML();

先添加一个节点,然后再删除一个节点,然后输出到文件。

删除节点不需要直接操作NodeTS类了,所以我们就直接在tsfunItem类里面设一个新的函数:

void TsfunItem::deleteNode(int i)
{
	if(i>=0&&i<= TsNodes.count())
		TsNodes.removeAt(i);
}

很简单,就是删除掉列表对象里的响应坐标的元素。

之后再到 tsfunGroup类:

void TsfunGroup::deleteNodeInItem(QString itemName, int index)
{
	for (int i = 0;i < tsfitmlist.count();i++) {
		if (itemName == tsfitmlist[i].returnNameID()) {
			tsfitmlist[i].deleteNode(index);

		}
	}
}

和之前插入节点很相似,先找到对应目标,然后把节点删除。

删除后的效果如下:

        <Nodes>
            <Node>
                <NormalizedIntensity Value="0.01923"/>
                <Opacity Value="0.1023"/>
                <Emission R="123" B="67" G="32"/>
            </Node>
            <Node>
                <NormalizedIntensity Value="0"/>
                <Opacity Value="0"/>
                <Emission R="0" B="0" G="0"/>
            </Node>
            <Node>
                <NormalizedIntensity Value="0.13597"/>
                <Opacity Value="0"/>
                <Emission R="0" B="0" G="0"/>
            </Node>
            <Node>
                <NormalizedIntensity Value="0.288578"/>
                <Opacity Value="0.363502"/>
                <Emission R="0" B="0" G="0"/>
            </Node>
            <Node>
                <NormalizedIntensity Value="0.45417"/>
                <Opacity Value="1"/>
                <Emission R="0" B="0" G="0"/>
            </Node>
        </Nodes>

添加一个元素,删除两个元素,最后剩下5个元素。

要注意我们添加节点和删除节点都是针对我们自己建立的数据结构来删除的,而不是针对QDomdocument建立的对象在里面进行删除,这样的好处是可以实现xml类与数据类进行分离,我们只需要对数据进行操作,而不必在意xml相关类的结构。

下一节开始我们将会把所有的功能都利用起来,实现一个应用。

相关文章:

  • XML语言数据读写理解16
  • QT图形显示和处理1
  • QT图形显示和处理2 坐标系统(重点)
  • QT图形显示和处理3 坐标系统(重点)
  • QT图形显示和处理4
  • QT图形显示和处理5
  • QT图形显示和处理6
  • QT图形显示和处理7
  • QT图形显示和处理8
  • QT传输函数控件设计1 引子
  • QT传输函数控件设计2 体渲染和VTK
  • QT传输函数控件设计3 QVTKWidget和QT图形界面的融合
  • QT传输函数控件设计4 接着进行融合
  • QT传输函数控件设计5 显示体渲染效果
  • QT传输函数控件设计6 设计Dock窗体结构
  • 5、React组件事件详解
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • canvas 五子棋游戏
  • C学习-枚举(九)
  • ES6语法详解(一)
  • ESLint简单操作
  • python_bomb----数据类型总结
  • python学习笔记 - ThreadLocal
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 第十八天-企业应用架构模式-基本模式
  • 后端_MYSQL
  • 聚簇索引和非聚簇索引
  • 排序算法之--选择排序
  • 前端攻城师
  • 前端设计模式
  • 区块链技术特点之去中心化特性
  • 三栏布局总结
  • 收藏好这篇,别再只说“数据劫持”了
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​第20课 在Android Native开发中加入新的C++类
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #预处理和函数的对比以及条件编译
  • (145)光线追踪距离场柔和阴影
  • (C语言)逆序输出字符串
  • (独孤九剑)--文件系统
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (一)基于IDEA的JAVA基础1
  • (转)创业家杂志:UCWEB天使第一步
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 中的轻量级线程安全
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • /etc/fstab 只读无法修改的解决办法
  • ??eclipse的安装配置问题!??