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关注公众号 霸道的程序猿 获取编程 ...
随机推荐
- Vue创建项目配置
前言 安装VS Code,开始vue的学习及编程,但是总是遇到各种各样的错误,控制台语法错误,格式错误.一股脑的袭来,感觉创建个项目怎么这个麻烦.这里就讲一下vue的安装及创建. 安装环境 当然第一步 ...
- 学习Vuex 个人的一些拙见。
首先说下什么是vuex?这个是对vue的状态的管理,这样说可能有点大,其实就是vue 里面 data 的管理,或者说是多个vue 组件共有的data 的一种管理, 在任何一个组件里面,都可以修改,访 ...
- js高程3--面向对象的程序设计--创建对象
创建对象 这是js高程3--第6章面向对象的程序设计--第二节创建对象的总结与自己的理解,每一种模式都有自己的优点与缺点,搞清楚它们出现的历史原因,优缺点,我们才能使用的更加游刃有余! 本片文章并没有 ...
- c# 读取 txt 文件中数据(int)
今天在学图的算法做测试是,需要读取文本文件中的点坐标,本来很简单的事情,折腾了半天,记录一下找到的一种简单粗暴的解决方法,以便以后查看. 第一种方法 : StringReader string lin ...
- PL/SQL 调用JAVA使用UDP发送数据
步骤如下 1.直接在SQL命令中写入JAVA代码(用SYS帐号执行,不然权限等太麻烦) create or replace and resolve java source named udp as i ...
- Python模块之pexpect
一.pexpect模块介绍 Pexpect使Python成为控制其他应用程序的更好工具.可以理解为Linux下的expect的Python封装,通过pexpect我们可以实现对ssh,ftp,pass ...
- python学习之路(2)---字符编码
二进制编码 bin(300) python计算二进制编码,十进制转2进制 一个二进制位就是1bit 1bit代表了8个字节,00001111 1bit = 1bytes 缩写1b 1kb ...
- 2018年蓝桥杯b组国赛真题
1.标题:换零钞x星球的钞票的面额只有:100元,5元,2元,1元,共4种.小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱.小明有点强迫症,他坚持要求200元换出 ...
- iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习三大模块
目 录 1. 概述... 2 2. 使命及目标... 3 3. 系统框架... 4 4. 设备容器(iNeuKernel)... 4 5. ...
- Leetcode之深度优先搜索&回溯专题-980. 不同路径 III(Unique Paths III)
Leetcode之深度优先搜索&回溯专题-980. 不同路径 III(Unique Paths III) 深度优先搜索的解题详细介绍,点击 在二维网格 grid 上,有 4 种类型的方格: 1 ...