步步为营-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

 

posted @ 2017-04-17 13:57  逍遥小天狼  阅读(161)  评论(0编辑  收藏  举报