Winform中对自定义xml配置文件进行Xml节点的添加与删除
场景
Winform中自定义xml配置文件后对节点进行读取与写入:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137
在上面已经对xml配置文件对节点能进行读取与写入之后 ,实现对节点元素的
添加与删除。
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
大量编程视频教程:https://space.bilibili.com/164396311
xml配置文件如下
<?xml version="1.0" encoding="utf-8" ?>
<Configure>
<!--Y轴集合-->
<YAxis>
<!--第一条Y轴-->
<YAxi>
<no></no>
<title>温度</title>
<color>black</color>
<min>-</min>
<max></max>
</YAxi>
<!--第二条Y轴-->
<YAxi>
<no></no>
<title>电压</title>
<color>black</color>
<min>-</min>
<max></max>
</YAxi>
</YAxis> </Configure>
实现
添加节点
在工具类中新增方法
public static void addNode()
{
//获取可执行文件的路径-即bin目录下的debug或者release目录
string context = System.Windows.Forms.Application.StartupPath;
string path = String.Concat(context, @"\config\YAxisSet.xml");
XmlDocument xml = new XmlDocument();
//打开一个xml
try
{
xml.Load(path);
//选择匹配 XPath 表达式的第一个 XmlNode
XmlNode Configure = xml.SelectSingleNode("Configure/YAxis");
//读取节点数据
if (Configure != null)
{
XmlNode yaxi = xml.CreateNode(XmlNodeType.Element, "YAxi", null);
//创建No节点
XmlNode no = xml.CreateNode(XmlNodeType.Element, "YAxi", null);
no.InnerText = "";
yaxi.AppendChild(no);
//创建title节点
XmlNode title = xml.CreateNode(XmlNodeType.Element, "title", null);
title.InnerText = "badao";
yaxi.AppendChild(title);
//创建color节点
XmlNode color = xml.CreateNode(XmlNodeType.Element, "color", null);
color.InnerText = "red";
yaxi.AppendChild(color);
//创建min节点
XmlNode min = xml.CreateNode(XmlNodeType.Element, "min", null);
min.InnerText = "-1600";
yaxi.AppendChild(min);
//创建max节点
XmlNode max = xml.CreateNode(XmlNodeType.Element, "max", null);
max.InnerText = "";
yaxi.AppendChild(max);
//将yaxi追加到YAxis
Configure.AppendChild(yaxi);
XmlNodeList nodelist = xml.SelectNodes("Configure/YAxis/YAxi");
xml.Save(path);
MessageBox.Show("nodelist[0]是:" + nodelist[].ChildNodes[].InnerText);
MessageBox.Show("nodelist[1]是:" + nodelist[].ChildNodes[].InnerText);
MessageBox.Show("nodelist[2]是:" + nodelist[].ChildNodes[].InnerText);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
注:
主要通过XmlDocument.CreateNode来创建节点。
第一个参数是节点类型,Element代表是节点。
第二个参数Name属性。
第三个参数是命名空间,这里为null
以上效果就是完整的添加了一条Y轴以及相关属性。
然后新建一个按钮,在点击事件中调用工具类中的方法。
private void simpleButton3_Click(object sender, EventArgs e)
{
ConfigAccessUtils.addNode();
}
效果
添加之前

点击添加按钮后

添加之后

删除节点
工具类中新建方法
public static void removeNode()
{
//获取可执行文件的路径-即bin目录下的debug或者release目录
string context = System.Windows.Forms.Application.StartupPath;
string path = String.Concat(context, @"\config\YAxisSet.xml");
XmlDocument xml = new XmlDocument();
//打开一个xml
try
{
xml.Load(path);
//选择匹配 XPath 表达式的第一个 XmlNode
XmlNode Configure = xml.SelectSingleNode("Configure/YAxis");
//读取节点数据
if (Configure != null)
{
XmlNodeList nodelist = xml.SelectNodes("Configure/YAxis/YAxi");
MessageBox.Show("删除之前count是:" + nodelist.Count);
//将第三个节点删除
Configure.RemoveChild(Configure.ChildNodes[]);
nodelist = xml.SelectNodes("Configure/YAxis/YAxi");
xml.Save(path);
MessageBox.Show("删除之后count是:" + nodelist.Count); }
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
注:
是通过XmlNode.RemoveChild(XmlNode)来实现删除子节点的。
SelectNodes可以获得所有配置的节点。
效果
删除之前

删除之后

Winform中对自定义xml配置文件进行Xml节点的添加与删除的更多相关文章
- Winform中自定义xml配置文件后对节点进行读取与写入
场景 Winform中自定义xml配置文件,并配置获取文件路径: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100522648 ...
- Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
场景 使用Visual Studio 开发Winform程序,使用SVN进行项目版本管理. 在添加引用时,会出现在A电脑中添加了绝对路径的引用,在B电脑中就会出现找不到 并且将此引用标识为?的状态. ...
- C#中操作xml文件(插入节点、修改、删除)
已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...
- C#中对 XML节点进行添加,删除,查找和删除操作
从网上整理所得 XMLDocument来操作XML比较简单,虽然有时效率不是很高.代码如下 已知有一个XML文件(bookstore.xml)如下: <?xml version="1. ...
- Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (mysql)
1/自动生成的jar包:mybatis-generator-core-1.3.2.jar 2/generatorconfig.xml文件如: <?xml version="1.0& ...
- Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (main()方法自动生成更快捷)
最近项目要用到mybatis中间件,中间涉及到要对表结构生成bean,dao,和sqlconfig.xml 所以记录一下学习过程 首先是准备工作,即准备需要的jar包:我们的数据库mysql,所以驱动 ...
- WinForm中使用自定义Tooltip控件
private ToolTip tooltipCtr; 构造函数中: 隐藏默认的Tooltip:this.ShowCellToolTips = false; this.tooltipCtr = new ...
- Winform中实现自定义屏保效果(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...
- Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片
场景 怎样在Winform程序中添加鼠标右键时使子选项显示图片. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程 ...
随机推荐
- [Spring cloud 一步步实现广告系统] 19. 监控Hystrix Dashboard
在之前的18次文章中,我们实现了广告系统的广告投放,广告检索业务功能,中间使用到了 服务发现Eureka,服务调用Feign,网关路由Zuul以及错误熔断Hystrix等Spring Cloud组件. ...
- 帝国CMS(EmpireCMS) v7.5 代码注入分析(CVE-2018-19462)
帝国CMS(EmpireCMS) v7.5 代码注入分析(CVE-2018-19462) 一.漏洞描述 EmpireCMS7.5及之前版本中的admindbDoSql.php文件存在代码注入漏洞.该漏 ...
- centos7单机安装kafka,进行生产者消费者测试
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11364852.html 作者:jstarseven 码字挺辛苦的..... 一.k ...
- 为什么说java是只有值传递?
如果你学的第一门程序语言是java可能对这个传递方式没有那么敏感,如果学了c或c++,然后再学java,那么可能对这个问题会感到困惑. 1.值传递与引用传递的概念 在将传递方式之前先理解一下形参与实参 ...
- 程序与CPU
CPU中共有四大组件: 寄存器 控制器 运算器 时钟 寄存器:存取数值(存东西的) 控制器:负责将内存(寄存器)中的数据进行读入和写出(控制寄存器 协调者) 运算器:里面是逻辑运算单元,协助寄存器和控 ...
- 图灵学院Java架构师-VIP-【性能调优-Mysql索引数据结构详解与索引优化】
最近报名了图灵学院的架构专题的付费课程,没有赶上6月份开课,中途加入的.错过了多线程的直播课程,只能看录播了
- 从一道没人能答对的面试题聊聊Java的值传递
这是一道我们公司的面试题,从招第二个Java以来就一直存在了.但是面试了这么长的时间还没有一个人可以全部答对,让我们一度以为是这题出的不对.首先请看面试题. 以下运算的输出分别是多少: ```java ...
- 常见rpm包和yum包命令
1.rpm包 在 安装.升级.卸载服务程序时要考虑到其他程序.库的依赖关系,在进行校验.安装. 卸载.查询.升级等管理软件操作时难度都非常大. RPM 机制则为解决这些问题而设计的.RPM 有点像 W ...
- c++ 左移
maxval = (1 << d) - 1: d=8 意思是2^d-1,相当于1左移d位
- maven替换中央仓库,阿里云镜像下载及自定义本地仓库位置
maven替换中央仓库- 阿里云 在国内访问Maven仓库,下载速度太慢.下面是将中央仓库替换成阿里云的中央仓库的方法.国内还有其他的公共仓库,自己选择. 在你下载的maven版本-conf-set ...