zoukankan      html  css  js  c++  java
  • 步步为营-20-XML

    说明:可扩展标记语言 eXtensible Markup Language--区分大小写

    涉及到的知识点:DOM 文档对象模型

    文本文件存储数据缺点:1,不易读取.2,易乱码

    1 通过代码创建一个xml文档

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace XMLTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                //1.创建一个xml文档对象
                XmlDocument doc = new XmlDocument();
                //2创建xml版本描述信息
                XmlDeclaration dec= doc.CreateXmlDeclaration("1.0","utf-8",null);
                //3将第一行数据添加到文档中
                doc.AppendChild(dec);
                //4创建根节点
               XmlElement books= doc.CreateElement("Books");
                //5 将根节点添加到文档对象
               doc.AppendChild(books);
                //6创建子节点
               XmlElement book1 = doc.CreateElement("Book");
                //7 将子节点book1添加到根节点下
               books.AppendChild(book1);
    
                //8 创建book1的子节点--BookName
               XmlElement book1Name = doc.CreateElement("BookName");
                //9 创建BookName的内容
               book1Name.InnerText = "水浒传";
                //10 将book1Name添加到Book1节点下
               book1.AppendChild(book1Name);
    
               //8.1 创建book1的子节点--BookName
               XmlElement book1Author = doc.CreateElement("BookAuthor");
               //9.1 创建BookAuthor的内容
               book1Author.InnerText = "施耐庵";
               //10.1 将book1Author添加到Book1节点下
               book1.AppendChild(book1Author);
    
                //8.2 创建 book1的子节点-BookPrice
               XmlElement book1Price = doc.CreateElement("BookPrice");
               //9.2 创建BookPrice的内容
               book1Price.InnerText = "<xml>100</xml>";
               //10.2 将BookPrice添加到book1中
               book1.AppendChild(book1Price);
    
                //8.3 创建book1的子节点 BookDec
               XmlElement book1Dec = doc.CreateElement("BookDec");
                //9.3设置bookDec内容
               book1Dec.InnerXml="不错<xml></xml>";
                //10.3 将bookDec保存到book1中
               book1.AppendChild(book1Dec);
    
                doc.Save("Book.xml");
                Console.WriteLine("保存成功!");
                Console.ReadLine();
            }
        }
    }
    View Code

    运行效果

    现在可以明白innerText和innerXml的区别了吧:一个队html进行编译,一个不编译

    2 创建一个带有属性的xml文档

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace XMLTest2
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();
                //1创建版本信息说明
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
                //2添加到文档中
                doc.AppendChild(dec);
                //3 创建根节点-并添加到文档中
                XmlElement order = doc.CreateElement("Order");
                //3-1将根节点添加到文档中
                doc.AppendChild(order);
                //4 创建子节点-设置子节点属性-并添加到文档中
                XmlElement customerName = doc.CreateElement("CustomerName");
                //4-1 设置子节点属性
                customerName.InnerXml = "小天狼";
                order.AppendChild(customerName);
    
                //5添加点OrderNumber
                XmlElement orderNumber = doc.CreateElement("OrderNumber");
                //5-1设置orderNumber内容
                orderNumber.InnerXml = "10000";
                //5-2 添加到order中
                order.AppendChild(orderNumber);
    
                //6创建items-并添加到order上
                XmlElement items = doc.CreateElement("Items");
                //6-1添加子节点
                XmlElement orderItem1 = doc.CreateElement("OrderItem");
                //6-1-1 为OrderItem添加属性
                orderItem1.SetAttribute("Name","码表");
                orderItem1.SetAttribute("Count","10001");
                items.AppendChild(orderItem1);
                //6-2 添加第二个子节点
                XmlElement orderItem2 = doc.CreateElement("OrderItem");
                orderItem2.SetAttribute("Name","雨衣");
                orderItem2.SetAttribute("Count","100");
                items.AppendChild(orderItem2);
    
                //6-2添加到order中
                order.AppendChild(items);
    
                doc.Save("Order.xml");
                Console.WriteLine("保存成功!");
                Console.ReadLine();
            }
        }
    }
    View Code

    3通过文档对象模型DOM创建xml

    3.1 创建Student类对象

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Test3
    {
        public class Student
        {
            public int Age { get; set; }
            public string Name { get; set; }
            public int ID { get; set; }
            public char Gender { get; set; }
        }
    }
    Person

    3.2main方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    using Test3;
    
    namespace XMLTest3
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<Student> list = new List<Student>();
                list.Add(new Student() { ID = 1, Name = "yk", Gender = '', Age = 16 });
                list.Add(new Student() { ID = 2, Name = "xy", Gender = '', Age = 16 });
                list.Add(new Student() { ID = 3, Name = "下雨了", Gender = '', Age = 20 });
                list.Add(new Student() { ID = 4, Name = "xtl", Gender = '', Age = 16 });
                list.Add(new Student() { ID = 5, Name = "逍遥小天狼", Gender = '', Age = 30 });
    
                XmlDocument doc = new XmlDocument();
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
                doc.AppendChild(dec);
    
                //创建根节点
                XmlElement person = doc.CreateElement("Person");
                doc.AppendChild(person);
                //将对象插入到xml中
                foreach (Student item in list)
                {
                    XmlElement student = doc.CreateElement("Student");
                    student.SetAttribute("StudentID",item.ID.ToString());
                    XmlElement name = doc.CreateElement("Name");
                    name.InnerXml = item.Name;
                    student.AppendChild(name);
                    XmlElement age = doc.CreateElement("Age");
                    age.InnerXml = item.Age.ToString();
                    student.AppendChild(age);
                    XmlElement gender = doc.CreateElement("Gender");
                    gender.InnerXml = item.Gender.ToString();
                    student.AppendChild(gender);
    
                    //将student添加到Person
                    person.AppendChild(student);
    
                }
    
                doc.Save("Person.xml");
                Console.WriteLine("保存成功");
                Console.ReadLine();
            }
        }
    }
    View Code

    运行效果

    1

  • 相关阅读:
    加沙地带
    特拉维夫以色列第二大城市,滨临东地中海,以色列最为国际化的经济中心
    1980年,以色列国会立法确定耶路撒冷是该国“永远的与不可分割的首都”。而巴勒斯坦自治政府也宣布耶路撒冷将是未来巴勒斯坦国的首都。在21世纪,耶路撒冷仍然是巴以冲突的中心。
    delete
    NUnit -- Test discovery or execution might not work for this project
    HearthBuddy中_settings.txt的更详细参数解释
    WPF global exception handler
    sftp winscp
    cdn and fallback
    What happens in an async method
  • 原文地址:https://www.cnblogs.com/YK2012/p/6722617.html
Copyright © 2011-2022 走看看