欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Winform中对自定义xml配置文件进行Xml节点的添加与删除

程序员文章站 2022-05-07 11:55:55
场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137 在上面已经对xml配置文件对节点能进行读取与写入之后 ,实现对节点元素的 添加与删除。 关注公众 ......

场景

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

https://blog.csdn.net/badao_liumang_qizhi/article/details/100532137

在上面已经对xml配置文件对节点能进行读取与写入之后 ,实现对节点元素的

添加与删除。

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
大量编程视频教程:

xml配置文件如下

<?xml version="1.0" encoding="utf-8" ?>
<configure>
    <!--y轴集合-->
    <yaxis>
        <!--第一条y轴-->
        <yaxi>
            <no>1</no>
            <title>温度</title>
            <color>black</color>
            <min>-1500</min>
            <max>1500</max>
        </yaxi>
        <!--第二条y轴-->
        <yaxi>
            <no>2</no>
            <title>电压</title>
            <color>black</color>
            <min>-1500</min>
            <max>1500</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 = "3";
                    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 = "1600";
                    yaxi.appendchild(max);
                    //将yaxi追加到yaxis
                    configure.appendchild(yaxi);
                    xmlnodelist nodelist = xml.selectnodes("configure/yaxis/yaxi");
                    xml.save(path);
                    messagebox.show("nodelist[0]是:" + nodelist[0].childnodes[1].innertext);
                    messagebox.show("nodelist[1]是:" + nodelist[1].childnodes[1].innertext);
                    messagebox.show("nodelist[2]是:" + nodelist[2].childnodes[1].innertext);
                }
            }
            catch (exception ex)
            {
                console.writeline(ex.message);
            }
        }

 

注:

主要通过xmldocument.createnode来创建节点。

第一个参数是节点类型,element代表是节点。

第二个参数name属性。

第三个参数是命名空间,这里为null

以上效果就是完整的添加了一条y轴以及相关属性。

然后新建一个按钮,在点击事件中调用工具类中的方法。

private void simplebutton3_click(object sender, eventargs e)
        {
            configaccessutils.addnode();
        }

 

效果

添加之前

Winform中对自定义xml配置文件进行Xml节点的添加与删除

 

 

Winform中对自定义xml配置文件进行Xml节点的添加与删除

点击添加按钮后

Winform中对自定义xml配置文件进行Xml节点的添加与删除

 

 

添加之后

Winform中对自定义xml配置文件进行Xml节点的添加与删除

 

 

Winform中对自定义xml配置文件进行Xml节点的添加与删除

删除节点

工具类中新建方法

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[2]);
                    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配置文件进行Xml节点的添加与删除