menghaoran
人都会死,但不是每个人都真正活过!
创建一个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文件所理解的东西。学习学习再学习!:)
posted on 2012-07-22 18:07  menghaoran  阅读(3430)  评论(0编辑  收藏  举报