美文网首页
XML浅入(C#中操作)

XML浅入(C#中操作)

作者: Memoyu | 来源:发表于2018-08-09 00:04 被阅读0次

    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实例对象,再调用对象方法对其进行操作;

    相关文章

      网友评论

          本文标题:XML浅入(C#中操作)

          本文链接:https://www.haomeiwen.com/subject/uupfbftx.html