zoukankan      html  css  js  c++  java
  • C#里创建xml文件添加删除节点

    创建一个xml文件的步骤:
    新建一个XElement对象,为这个对象赋值。我这里的最外层节点名称叫:Smart2000,它里面包含两个节点,“SuperPin”和“Modules”,在这里,“SuperPin”节点的值是固定的,在声明xml文件时就直接初始化,儿“Modules”节点的值没有固定,在这里就直接写入,声明存在这个节点,并不指定“Modules”节点里的格式。
     不指定Modules的格式:
    public static XElement GenerateXmlFile(string appId)
     XElement myXDoc = new XElement(
                       new XElement("Smart2000",
                               new XElement("SuperPin", superPin),
                               new XElement("Modules")
                               );
    }
    指定Modules的格式:
    public static XElement GenerateXmlFile(string appId)
     XElement myXDoc = new XElement(
                       new XElement("Smart2000",
                               new XElement("SuperPin", superPin),
                               new XElement("Modules",
                                       new XElement("Modules",
                                         new XAttribute("ID", "0"),
                                         new XAttribute("enable", "true"),
                                         new XAttribute("name", "Module" + 0),
                                         new XAttribute("Data", "")
                                           )
                )
                               );
    }
     
    当我想在别的地方调用这个方法,并且还要为这个xml文件下的“Modules”节点新添加节点的时候,如果初始化的时候没有指定格式,那这里就可以直接写添加节点的方法,如果初始化了,那么可以判断一下初始化节点,然后RemoveAll()删除掉该节点,然后添加符合条件的数据
       /// <summary>
            /// 修改节点的值
            /// </summary>
            /// <param name="myXDoc">原xml文件</param>
            /// <param name="num">模块序号</param>
            /// <param name="name">模块名称</param>
            /// <param name="data">模块数据[此处暂不做要求]</param>
            /// <returns>添加新节点后的xml文件</returns>
            public static XElement GenerateModuleUpdateAdd(XElement myXDoc, int num, string name, string data)
            {
                XElement xele = myXDoc.Element("Modules");  //在xml文件里取出该节点

                XElement x = xele.Element("Modules");  //在该节点下取到第一行初始化的数据

        //删除第一行数据  ps:由于水平有限,没有找到怎么替换第一行数据的方法,就干脆删掉,重新添加第一行符合条件的数据
                if (Convert.ToString(x.Attribute("name").Value) == "Module0")
                {
                    xele.RemoveAll();//删除该节点的全部内容
                }
        //添加符合条件的数据
                xele.Add(new XElement("Module",
                      new XAttribute("id", num),
                                     new XAttribute("enable", "true"),
                                     new XAttribute("name", name),
                                     new XAttribute("Data", data)));
                return myXDoc;
            }
    如果有多条数据要添加到这个节点下面,我认为把要添加的数据存入数组,然后循环数组调用该方法即可。
    这些是我这两天操作一个xml文件所理解的东西。学习学习再学习!:)
  • 相关阅读:
    Sigma Function
    优先队列
    Prime Permutation
    树状数组-----入门级别
    5.2Python函数(二)
    tkinter学习系列(四)之Button 控件
    tkinter学习系列(三)之Label控件
    tkinter学习系列(二)之窗口的设置
    tkinter学习系列(一)开篇之作
    5.1Python函数(一)
  • 原文地址:https://www.cnblogs.com/ZQiuMei/p/2603850.html
Copyright © 2011-2022 走看看