C#中的XML基本用法

版权声明:版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/shaotaiban1097/article/details/82722339

XML的基本用法

新建XML文档

public static void CreateXML() {
            /*
             * XML:可扩展的标记语言  
             *      用于存储数据,类似于小型数据库
             *      严格区分大小写
             *      标签不固定
             *      标签成对出现
             */

            //Test : 通过代码创建XML文档

            //Step1:引用命名空间System.Xml;

            //Step2:创建XML文档对象
            XmlDocument doc = new XmlDocument();

            //Step3:创建第一行描述信息,并添加到doc文档中  Element 与 Node的关系,文档中所有内容都属于Element,其中标签属于Node,
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            doc.AppendChild(dec);

            //Step4:XML必须包含且仅能包含一个根结点
            XmlElement order = doc.CreateElement("Order");
            doc.AppendChild(order);

            //Step5:给根结点创建子结点
            XmlElement customerName = doc.CreateElement("customerName");
            customerName.InnerText = "张三";
            order.AppendChild(customerName);

            //Step6:给customerName添加子结点
            XmlElement customerNumber = doc.CreateElement("customerNumber");
            customerNumber.InnerText = "100000001";
            order.AppendChild(customerNumber);

            XmlElement items = doc.CreateElement("items");
            order.AppendChild(items);

            //Step6:给结点添加属性
            XmlElement orderItem1 = doc.CreateElement("OrderItems");
            orderItem1.SetAttribute("Name", "手机");
            orderItem1.SetAttribute("Count", "1");
            items.AppendChild(orderItem1);

            XmlElement orderItem2 = doc.CreateElement("OrderItems");
            orderItem2.SetAttribute("Name", "手表");
            orderItem2.SetAttribute("Count", "2");
            items.AppendChild(orderItem2);

            XmlElement orderItem3 = doc.CreateElement("OrderItems");
            orderItem3.SetAttribute("Name", "手环");
            orderItem3.SetAttribute("Count", "3");
            items.AppendChild(orderItem3);

            doc.Save("books.xml");
            Console.WriteLine("保存成功");
            //如果没有显示。保存路径 -- 解决方案- 显示所有文件(该按钮有可能需要点"更多"箭头) - bin - debug
        }

追加XML文档

public static void AppendXML() {

            //追加XML文档
            XmlDocument doc = new XmlDocument();
            //如果文件存在 -- 追加
            //如果文件不存在 -- 创建
            if (File.Exists("books.xml")) {
                //加载XML
                doc.Load("books.xml");//bin目录下
                //获取文件根结点
                XmlElement books = doc.DocumentElement;
                //然后追加子结点
                XmlElement other = doc.CreateElement("Other");
                books.AppendChild(other);
            } else {
                //创建XML文档第一行
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
                doc.AppendChild(dec);
                //创建根结点
                XmlElement books = doc.CreateElement("Books");
                doc.AppendChild(books);
            }
            doc.Save("books.xml");
            Console.WriteLine("保存成功");
        }

加载XML文档的节点

public static void LoadXML() {

            XmlDocument doc = new XmlDocument();

            //加载要读取的XML文档
            doc.Load("books.xml");
            //获取根结点
            XmlElement books = doc.DocumentElement;

            //获得子结点,返回结点的集合
            XmlNodeList xnl = books.ChildNodes;

            foreach (XmlNode item in xnl) {
                Console.WriteLine(item.InnerText);
            }
        }

读取XML文档节点中的属性

public static void LoadAttribute() {

            XmlDocument doc = new XmlDocument();
            doc.Load("books.xml");

            //获取结点集合
            XmlNodeList xmlNodeList = doc.SelectNodes("/Order/Items/OrderItem");
            foreach (XmlNode node in xmlNodeList) {
                //获取属性
                Console.WriteLine(node.Attributes["name"].Value);

                Console.WriteLine(node.Attributes["Count"].Value);
            }
        }

删除XML文档的节点

public static void DeleteNode() {

            XmlDocument doc = new XmlDocument();
            doc.Load("books.xml");

            //获取单个结点
            XmlNode xn = doc.SelectSingleNode("/Order/Items");

            //删除结点
            xn.RemoveAll();

            //保存
            doc.Save("books.xml");
            Console.WriteLine("删除并保存成功");
        }

我的另一篇关于学习XML后的实例Demo:

https://blog.csdn.net/shaotaiban1097/article/details/82723036

猜你喜欢

转载自blog.csdn.net/shaotaiban1097/article/details/82722339