场景

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. html5标签整理

    html元素 基础标签 <!DOCTYPE> 定义文档类型(e.g  <!DOCTYPE  html>) <html>定义一个HTML文档</html> ...

  2. 【原】iOS查找私有API

    喜接新项目往往预示的会出一堆问题.解决问题的同时往往也就是学到更多东西的时候,这也许就是学习到新东西最直接最快速的方法吧! 小编经过努力,新项目终于过测试了,可是被苹果大大给拒了,好苦啊,最近的审核真 ...

  3. Python自动化开发

    阅读目录 第一篇:python入门 第二篇:字符编码.文件处理 第三篇:函数 第四篇:迭代器.生成器.三元表达式.列表生成式 第五篇:模块.包.软件开发规范 第六篇:日志模块 第七篇:常用模块 第八篇 ...

  4. 900E关于导航站

    --------------------------以下更新于20190826------------------------- 作用: 导航站为方便网址收藏之用,收录一些常用的网站,目前主要以本科常 ...

  5. PythonI/O进阶学习笔记_1.抽象、面向对象、class/object/type

    前言: 是自己在学习python进阶IO学习视频的时候的理解和笔记,因为很多都是本菜鸟学习时候的自己的理解,有可能理解有误. Content: - 抽象的概念和面向对象的概念?想要大概了解python ...

  6. Redis学习总结(一)--Redis入门

    Redis 概念 1.Redis 是什么 Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 2.Redis 能干什么 Redis 支持字符串.哈希 ...

  7. Spring学习之旅(八)--SpringMVC请求参数

    现在我们已经完成了一个无参的接口了,但是应用中有很多需要携带参数的场景,我们来看看 ** SpringMVC** 对它的支持. 参数绑定 SpringMVC 提供了一种绑定机制,通过这个机制可以从请求 ...

  8. unity_实用小技巧(空指针错误)

    在游戏开发中,空指针错误是我们最常见也是最容易出现的错误.下面介绍一下博主近期遇见的空指针错误 如上图,有两个类,如果此时我们在图2中调用图1的单例模式可能会出现空指针错误. 原因在于:编译器可能先执 ...

  9. PHP 与 MySQL 相关操作

    一.MySQL基操 •MySQL启动 注意:MySQL不能直接通过 mysql.exe 命令启动 MySQL客户端访问服务端需要寻找匹配:连接认证 连接:IP和端口确定,如果是本地都可以忽略 -h 主 ...

  10. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(五)

    笔者作为一名有数年工作经验的Java程序员,仔细研读了这份手册,觉得其是一份不可多得的好材料.阿里巴巴在发布时所说,“阿里巴巴集团推出的<阿里巴巴Java开发手册(正式版)>是阿里巴巴近万 ...