c# XML基础,可扩展标记语言,简单储存/配置数据

一、写入:

 

XmlDocument doc = new XmlDocument();
            //xml文档信息
            XmlDeclaration dec= doc.CreateXmlDeclaration("1.2", "UTF-8", null);
            //加入doc
            doc.AppendChild(dec);
            //根信息加入doc
           XmlElement root= doc.CreateElement("books");
            doc.AppendChild(root);
            //book1节点加入root
            XmlElement book1 = doc.CreateElement("book1");
            root.AppendChild(book1);
            //生成book1子节点       
            XmlElement name1 = doc.CreateElement("name");
            XmlElement price1 = doc.CreateElement("price");
            XmlElement count1 = doc.CreateElement("count");         
            //book1子节点加入book1
            book1.AppendChild(name1);
            book1.AppendChild(price1);
            book1.AppendChild(count1);
            //子节点赋值
            name1.InnerText = "水浒传";
            price1.InnerText = "200元";
            count1.InnerXml = "<p>dd</p>";//innerxml内元素不转义
            //设置子节点属性
            name1.SetAttribute("曾用名", "无");
            //保存文件
            doc.save("1.xml"); 

 二、读取和追加

//xml追加,原理是读取文件,先获得根节点,然后操作根节点即可
            XmlDocument doc = new XmlDocument();
            XmlElement root; //根节点

            if (File.Exists("1.xml"))
            {
             //加载文件
             doc.Load("1.xml");
            //获取根节点
             root = doc.DocumentElement;
            }
            else 
            {
                //创建头信息并加入文档
               XmlDeclaration desc= doc.CreateXmlDeclaration("1.2", "utf-8", null);
                doc.AppendChild(desc);
                //创建根节点
               root= doc.CreateElement("books");
                //加入文档
                doc.AppendChild(root);
            }
            
            //加入新节点
            XmlElement des = doc.CreateElement("des");
            root.AppendChild(des);
            //已存在文件保存
            doc.Save("1.xml");

 三、读取节点

   //读取所有子节点文本
           XmlNodeList xclist=  root.ChildNodes; 
            foreach (XmlNode item in xclist)
            {
                label1.Text = item.InnerText;
            }
           //xpath读取单个节点文本
            label1.Text = doc.SelectSingleNode(@"/books/book1/name").InnerText;
            //xpath读取多个节点
            foreach (XmlNode item in doc.SelectNodes(@"/books/book1"))
            {
                label1.Text = item.InnerText;
            }  
//获取或者修改属性值
            label1.Text = doc.SelectSingleNode(@"/books/book1/name").Attributes["曾用名"].Value; //节点方法修改
             name1.SetAttribute("曾用名", "的");   //元素方法修改

              doc.Save("1.xml"); //修改完必须保存,不然没有改变

四、删除节点

doc.SelectSingleNode(@"/books/book1/name").RemoveAll(); //必须保存

  

 拓展 https://blog.csdn.net/jiankunking/article/details/17992753

  

 

posted @ 2021-06-02 09:25  遥月  阅读(193)  评论(0)    收藏  举报