场景

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节点的添加与删除的更多相关文章

  1. Winform中自定义xml配置文件后对节点进行读取与写入

    场景 Winform中自定义xml配置文件,并配置获取文件路径: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100522648 ...

  2. Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题

    场景 使用Visual Studio 开发Winform程序,使用SVN进行项目版本管理. 在添加引用时,会出现在A电脑中添加了绝对路径的引用,在B电脑中就会出现找不到 并且将此引用标识为?的状态. ...

  3. C#中操作xml文件(插入节点、修改、删除)

    已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...

  4. C#中对 XML节点进行添加,删除,查找和删除操作

    从网上整理所得 XMLDocument来操作XML比较简单,虽然有时效率不是很高.代码如下 已知有一个XML文件(bookstore.xml)如下: <?xml version="1. ...

  5. Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (mysql)

    1/自动生成的jar包:mybatis-generator-core-1.3.2.jar   2/generatorconfig.xml文件如: <?xml version="1.0& ...

  6. Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (main()方法自动生成更快捷)

    最近项目要用到mybatis中间件,中间涉及到要对表结构生成bean,dao,和sqlconfig.xml 所以记录一下学习过程 首先是准备工作,即准备需要的jar包:我们的数据库mysql,所以驱动 ...

  7. WinForm中使用自定义Tooltip控件

    private ToolTip tooltipCtr; 构造函数中: 隐藏默认的Tooltip:this.ShowCellToolTips = false; this.tooltipCtr = new ...

  8. Winform中实现自定义屏保效果(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...

  9. Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片

    场景 怎样在Winform程序中添加鼠标右键时使子选项显示图片. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程 ...

随机推荐

  1. maven的不同版本下载及环境配置

    Maven不同版本下载及环境配置 Maven下载 去到官网 https://maven.apache.org/ 会发现是最新版本,但是一般下载的话,都会下载比最新的版本要低两到三个小版本的,这里就下载 ...

  2. django报错信息解决方法

    You have 17 unapplied migration(s). Your project may not work properly until you apply the migration ...

  3. 1.2模板templates

    一.模板使用 1. 配置模板目录 如果命令行创建的项目,需要手动配置模板文件目录,如果是Pycharm创建的项目,则无需配置 在项目根目录下创建模板目录,比如叫 templates,后续开发模板文件会 ...

  4. html5 拖拽(drag)和f放置(drop)

    知识要点 HTML5 (drag&drop) API  (Event) 拖放数据(对象):DataTransfer 拖放内容:setData getData 拖放效果(动作):dropEffe ...

  5. Linux 下用C语言连接 sqlite

    1.在 /home/ 新建一个文件夹名为 sqlite #cd /home #mkdir sqlite 2.编写C语言代码,名称为 sql.c,代码如下 // name: sql.c // This ...

  6. 5G标准公布,你很快又要换手机了

    通常,在4G网络环境下,下载一部1G的电影只需要30秒时间,对于经历过2G和3G网络的我们来说已经非常快了. 但是听说,5G环境中下载一部同样的电影,根本不是用秒来计算的,甚至有外媒说,5G的速率会是 ...

  7. Hbase多版本(version)数据写入和读取

    1. 首先创建一个支持多版本的hbase表 create }   2.put几条测试数据 put ','f1:name','jack1' put ','f1:name','jack2' 3.读取多版本 ...

  8. python webdriver 常用元素操作

    1.新建实例 xx_driver = os.path.abspath(r"路径") os.environ["webdriver.xx.driver"] = xx ...

  9. 浏览器兼容问题-vue.js

    前端时间和其他公司人合作,认识了vue.起初我们做手机端一般用这个技术.后来发现在web也可以使用. 然后自己摸索了下,发现这个技术对于数据的绑定果真很神奇,所在在一些绑定数据比较多,比较零散的画面时 ...

  10. egret之moveclip 序列帧动画

    废话不多说,直接上代码: private addEffect(name, x: number, y: number, act?: string) { let data = RES.getRes(nam ...