c#对XML文件的生成-修改-添加-删除-读取等操作

来源:互联网 发布:淘宝api调用实例php 编辑:程序博客网 时间:2024/05/21 18:28

XML是一种可扩展标记语言,在开发c#程序过程中经常会使用到,下面几段代码是我平时在开发c#程序中整理出来的对XML文件的基本操作代码,其中包含了“创建生成XML文件”“向已有XML文件中插入新节点”“修改已有XML文件中的节点信息和属性”“删除XML文件中的节点属性和信息”“读取XML文件中的数据”,在c#中可对XML文件操作的方法有很多,这只是我个人了解的其中一种,代码只写了基本的处理流程,大家可以根据需要再进行深加工处理。

 

        /// <summary>创建XML

        /// </summary>

        public void CreateXML()

        {

            XmlDocument xmlDoc = newXmlDocument();

 

            XmlDeclaration xmlDec =xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

            xmlDoc.A(xmlDec);//设置文档属性

 

            XmlElement xmlelem =xmlDoc.createElement_x("RootNode");//添加根节点

            xmlDoc.A(xmlelem);

 

            XmlNode root =xmlDoc.SelectSingleNode("RootNode");//查找根节点

 

            XmlElement xe_parent =xmlDoc.createElement_x("Parent");//创建一个父节点  

           xe_parent.SetAttribute("name", "n1");//设置该节点属性(自定义,可不设置)  

 

            XmlElement xe_child1 =xmlDoc.createElement_x("child1");//创建第一个子节点 

            xe_child1.InnerText ="abc";//设置文本节点    

            xe_parent.A(xe_child1);//添加到父节点   

 

            XmlElement xe_child2 =xmlDoc.createElement_x("child2");//创建第二个子节点    

            xe_child2.InnerText ="def";//设置文本节点 

            xe_parent.A(xe_child2);//添加到父节点

 

            //创建N个子节点

            //......

 

            root.A(xe_parent);//添加到根节点

 

           xmlDoc.Save(@"E:\test.xml");//设置一个保存路径       

        }

 

        /// <summary>向XML中插入新节点

        /// </summary>

        public void AddXMLNode()

        {

            XmlDocument xmlDoc = newXmlDocument();

 

           xmlDoc.Load(@"E:\test.xml"); //加载一个xml文件

 

            XmlNode root =xmlDoc.SelectSingleNode("RootNode");//查找根节点RootNode

 

            XmlElement xe_parent =xmlDoc.createElement_x("Parent");//创建一个父节点  

           xe_parent.SetAttribute("name", "abc");//设置该节点属性(自定义,可不设置)  

 

            XmlElement xe_child1 =xmlDoc.createElement_x("child1");//创建第一个子节点 

            xe_child1.InnerText ="abc";//设置文本节点    

            xe_parent.A(xe_child1);//添加到父节点   

 

            XmlElement xe_child2 =xmlDoc.createElement_x("child2");//创建第二个子节点    

            xe_child2.InnerText ="def";//设置文本节点 

            xe_parent.A(xe_child2);//添加到父节点

 

            //创建N个子节点

            //......

 

            root.A(xe_parent);//添加节点到根节点RootNode中

 

           xmlDoc.Save(@"E:\test.xml");//保存

        }

 

        /// <summary>修改XML中某节点的信息

        /// </summary>

        public void UpdateXMLNodeInfo()

        {

            XmlDocument xmlDoc = newXmlDocument();

 

           xmlDoc.Load(@"E:\test.xml"); //加载一个xml文件

 

            XmlNodeList nodeList =xmlDoc.SelectSingleNode("RootNode").ChildNodes;//获取根节点的所有子节点

 

            foreach (XmlNode xn in nodeList)//遍历根节点的所有子节点

            {

                XmlElement xmlDoc2 =(XmlElement)xn;//将根节点的子节点类型转换为XmlElement类型

                //xmlDoc2.GetAttribute("属性名")可取根节点的子节点属性值

                //xmlDoc2.SetAttribute("属性名","属性值")可修改根节点的子节点属性值

                //xmlDoc2.ChildNodes;可继续取根节点的子节点下的所有子节点

                if(xmlDoc2.GetAttribute("name") == "abc")//找到相应节点

                {

                    XmlNodeList childNodeList =xmlDoc2.ChildNodes;//继续获取子节点的所有子节点

 

                    foreach (XmlNode xn2 inchildNodeList)//遍历子节点的所有子节点     

                    {

                        XmlElement xmlDoc3 =(XmlElement)xn2;//转换类型

 

                        if (xmlDoc3.Name =="child1")//找到相应节点      

                        {

                            xmlDoc3.InnerText ="11111111";//修改相应节点的值       

                            break;

                        }

                    }

                    break;

                }

            }

           xmlDoc.Save(@"E:\test.xml");//保存

        }

 

        /// <summary>删除XML中某个节点的属性或信息

        /// </summary>

        public void DelXMLNodeInfo()

        {

            XmlDocument xmlDoc = newXmlDocument();

 

           xmlDoc.Load(@"E:\test.xml"); //加载一个xml文件

 

            XmlNodeList nodeList = xmlDoc.SelectSingleNode("RootNode").ChildNodes;//获取根节点的所有子节点

 

            foreach (XmlNode xn in nodeList)//遍历根节点的所有子节点

            {

                XmlElement xmlDoc2 =(XmlElement)xn;//转换类型

 

                if(xmlDoc2.GetAttribute("name") == "abc")//找到相应节点 

                {

                   xmlDoc2.RemoveAttribute("name");//删除该节点的name属性     

                }

                else if(xmlDoc2.GetAttribute("name") == "def")     

                {

                    xmlDoc2.RemoveAll();//删除该节点的全部内容     

                }    

            }

           xmlDoc.Save(@"E:\test.xml");

        }

 

        /// <summary>读取XML文件中的数据

        /// </summary>

        public void GetXMLInfo()

        {

            XmlDocument xmlDoc = newXmlDocument();

 

           xmlDoc.Load(@"E:\test.xml"); //加载一个xml文件

 

            XmlNodeList nodeList =xmlDoc.SelectSingleNode("RootNode").ChildNodes;//获取根节点的所有子节点

 

            foreach (XmlNode xn in nodeList)//遍历根节点的所有子节点

            {

                XmlElement xmlDoc2 =(XmlElement)xn;//转换类型

               Console.WriteLine(xmlDoc2.GetAttribute("name"));//打印根节点的所有子节点的属性值 

                XmlNodeList nodeList2 =xmlDoc2.ChildNodes;//获取子节点下的所有子节点

                foreach (XmlNode xn2 innodeList2)//遍历子节点下的所有子节点

                {

                   Console.WriteLine(xn2.InnerText);//打印子节点下的所有子节点文本信息

                }

            }

        }


转载自:点击打开链接

 

0 0
原创粉丝点击