XML浅入(C#中操作)

2018-08-09  本文已影响0人  Memoyu

XML

XML 可拓展标记语言,此语言用于传输和存储数据;
1、其主要标识在于文件首行如下;
<?xml version="1.0" encoding="utf-8"?>
2、XML严格区分大小写,与HTML相似,标签都是成对出现,不同于HTML的是其标签是自定义,属性也是;

如下为示例代码:

<Books>
  <Book>     /*标签*/
    <Name>C#编程</Name>
    <Price>100</Price>
    <Gift BookMark="2张" ColourPen="1支" />
    <Name>JAVA编程</Name>
    <Price>100</Price>
    <Gift BookMark="2个" ColourPen="1支" />
  </Book>
</Books>
3、使用C#创建XML文件

步骤分为:1.引用命名空间-->2.创建XML文档对象-->3.创建XML文档第一行信息,并添加到XML文档中-->4.创建根节点-->5.给根节点添加子节点-->6.给book1添加子节点-->7.保存文件;

           //通过代码创建XML
            //1、引用命名空间
            //2、创建XML文档对象 
            XmlDocument xmlDoc = new XmlDocument();
            //全局根节点对象
            
            //3、创建XML文档第一行信息,并添加到XML文档中
            XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
             //将第一行添加到XML文档中
            xmlDoc.AppendChild(xmlDec);
            //4、创建根节点   代码中创建XML分为两种调用:1. XmlNode 为节点 2. XmlElement 为元素。
            //                                          xml中每一项都为元素,节点为标签,元素包含节点
            XmlElement books = xmlDoc.CreateElement("Books");

            //添加books标签到xml中
            xmlDoc.AppendChild(books);

            //5、给根节点添加子节点
            XmlElement book1 = xmlDoc.CreateElement("Book");
            books.AppendChild(book1);

            //6、给book1添加子节点
            XmlElement name1 = xmlDoc.CreateElement("Name");
            //给标签添加文本   1、InnerText 添加纯文本,字符用转义字符替换 2、InnerXml 输出标签格式文本
            name1.InnerText = "<C#编程>";
            book1.AppendChild(name1);
            //再添加节点
            XmlElement price1 = xmlDoc.CreateElement("Price");
            price1.InnerText = "100";
            book1.AppendChild(price1);

            //再添加节点
            XmlElement gift1 = xmlDoc.CreateElement("Gift");
            //给节点添加属性
            gift1.SetAttribute("BookMark", "2张");
            gift1.SetAttribute("ColourPen", "1支");

            book1.AppendChild(gift1);

            XmlElement name2 = xmlDoc.CreateElement("Name");
            //给标签添加文本   1、InnerText 添加纯文本,字符用转义字符替换 2、InnerXml 输出标签格式文本
            name2.InnerXml = "<p>JAVA编程</p>";
            book1.AppendChild(name2);
            //再添加节点
            XmlElement price2 = xmlDoc.CreateElement("Price");
            price2.InnerText = "100";
            book1.AppendChild(price2);

            //再添加节点
            XmlElement gift2 = xmlDoc.CreateElement("Gift");
            //给节点添加属性
            gift2.SetAttribute("BookMark", "2张");
            gift2.SetAttribute("ColourPen", "1支");
            book1.AppendChild(gift2);

            //保存
            xmlDoc.Save("Books.xml");
            Console.Write("保存成功");
            Console.ReadKey();
4、追加XML
            //全局根节点对象
            XmlElement books;
           //追加XML文档
            //判断XML文件是否存在,
            if (File.Exists("Books.xml"))//如果存在
            {
                //如果存在,则加载XML
                xmlDoc.Load("Books.xml");
                //获得文件的根节点
                books = xmlDoc.DocumentElement;
            }
            else//如果不存在
            {
                //3、创建XML文档第一行信息,并添加到XML文档中
                XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
                //将第一行添加到XML文档中
                xmlDoc.AppendChild(xmlDec);
                //4、创建根节点   代码中创建XML分为两种调用:1. XmlNode 为节点 2. XmlElement 为元素。
                //                                          xml中每一项都为元素,节点为标签,元素包含节点
                books = xmlDoc.CreateElement("Books");

                //添加books标签到xml中
                xmlDoc.AppendChild(books);
            }

            //  5、给节点添加子节点(重复第5步骤)
            ...........
5、读取XML(基础XML,不添加属性等)
            //加载要读取的XML 
             XmlDocument xmlDoc = new XmlDocument();
             xmlDoc.Load("Books.xml");
             //获得根节点
             XmlElement books = xmlDoc.DocumentElement;
             //获得子节点,返回子节点集合
             XmlNodeList xnl = books.ChildNodes;

             Console.WriteLine("读取成功");
             //遍历输出
             foreach (XmlNode item in xnl)
             {
                 Console.WriteLine(item.InnerText);
             }
             Console.ReadKey();
5、读取XML节点属性
            //加载要读取的XML 
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("Books.xml");
            //选择有属性的根节点
            XmlNodeList xnl = xmlDoc.SelectNodes("/Books/Book/Gift");

            Console.WriteLine("读取成功");
            foreach (XmlNode item in xnl)
            {
                Console.WriteLine(item.Attributes["BookMark"].Value);
                Console.WriteLine(item.Attributes["ColourPen"].Value);
            }

            Console.ReadKey();
5、删除XML节点
             //加载要读取的XML 
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("Books.xml");
            //选择要删除的根节点
            XmlNode xn = xmlDoc.SelectSingleNode("/Books/Book/Name");
            xn.RemoveAll();
            //保存
            xmlDoc.Save("Books.xml");
            Console.WriteLine("删除成功");
            Console.ReadKey();

总结:

  需要对已有XML文件进行操作(追加、读取内容,删除内容),应在操作之前对XML文件进行读取操作,并赋值给XmlDocument实例对象,再调用对象方法对其进行操作;
上一篇下一篇

猜你喜欢

热点阅读