XML(Extensible Markup Language),中文为可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
XML可以用来标记数据、定义数据类型,可以允许用户对自己标记语言进行定义,是对人和机器都比较友好的数据承载方式。它提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,非常适合万维网传输,是Internet环境中跨平台、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。
html:显示数据
xml:存储数据
XML区分大小写,标签成对出现,有且只有一个根节点
通过代码来创建XML文件
using System;using System.Xml;namespace _137_创建XML{class Program{static void Main(string[] args){#region 1//通过代码来创建XML文件//1、引用命名空间//2、创建XML文档对象XmlDocument doc = new XmlDocument();//3、创建一个行描述信息,并且添加到doc文档XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);doc.AppendChild(dec);//4、创建根节点XmlElement books = doc.CreateElement("Books");//将根节点添加到文档中doc.AppendChild(books);//5、给根节点Books创建子节点XmlElement book1 = doc.CreateElement("Book");//将book添加到根节点books.AppendChild(book1);XmlElement book2 = doc.CreateElement("Book");books.AppendChild(book2);//6、给Book添加子节点XmlElement name1 = doc.CreateElement("Name");name1.InnerText = "金瓶梅";book1.AppendChild(name1);XmlElement price1 = doc.CreateElement("Price");price1.InnerText = "100";book1.AppendChild(price1);XmlElement des1 = doc.CreateElement("Des");des1.InnerText = "小黄书";book1.AppendChild(des1);//给Book添加子节点XmlElement name2 = doc.CreateElement("Name");name2.InnerText = "飘飘欲仙";book2.AppendChild(name2);XmlElement price2 = doc.CreateElement("Price");price2.InnerText = "999";book2.AppendChild(price2);XmlElement des2 = doc.CreateElement("Des");des2.InnerText = "大黄书";book2.AppendChild(des2);//XmlElement x1 = doc.CreateElement("X1");x1.InnerText = "<p>我是一个p标签</p>";books.AppendChild(x1);XmlElement x2 = doc.CreateElement("X2");x2.InnerXml = "<p>我是一个p标签</p>";books.AppendChild(x2);doc.Save("Books.xml");Console.WriteLine("11保存成功");#endregionConsole.ReadKey();}}}using System;using System.Xml;namespace _138_创建带属性的XML文档{class Program{static void Main(string[] args){//创建带属性的xml文档XmlDocument xDoc = new XmlDocument();XmlDeclaration xDec = xDoc.CreateXmlDeclaration("1.0", "utf-8", null);//将第一行添加到文档中xDoc.AppendChild(xDec);//创建根节点1XmlElement order = xDoc.CreateElement("Order");xDoc.AppendChild(order);//给根节点创建子节点XmlElement customerName = xDoc.CreateElement("CustomerName");customerName.InnerText = "微咲";order.AppendChild(customerName);XmlElement orderNumber = xDoc.CreateElement("OrderNumber");orderNumber.InnerText = "00000001";order.AppendChild(orderNumber);XmlElement items = xDoc.CreateElement("Items");order.AppendChild(items);//给Items创建子节点XmlElement orderItem1 = xDoc.CreateElement("OrderItem");//给节点添加属性orderItem1.SetAttribute("Name", "英雄联盟");orderItem1.SetAttribute("Count", "7");//将节点添加到Items中items.AppendChild(orderItem1);XmlElement orderItem2 = xDoc.CreateElement("OrderItem");orderItem2.SetAttribute("Name", "羽毛球");orderItem2.SetAttribute("Count", "2");items.AppendChild(orderItem2);XmlElement orderItem3 = xDoc.CreateElement("OrderItem");orderItem3.SetAttribute("Name", "编程");orderItem3.SetAttribute("Count", "1");items.AppendChild(orderItem3);xDoc.Save("order.xml");Console.WriteLine("保存成功");Console.ReadKey();}}}
using System;using System.Xml;using System.IO;namespace _139_向XMl文档中追加{class Program{static void Main(string[] args){//追加XML文档XmlDocument doc = new XmlDocument();if (File.Exists("order.xml")){//如果文件存在 加载XMLdoc.Load("order.xml");//获得文件的根节点XmlElement order = doc.DocumentElement;}else{//如果文件不存在//创建第一行XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);doc.AppendChild(dec);//创建跟节点XmlElement order = doc.CreateElement("Order");doc.AppendChild(order);}doc.Save("Order.xml");}}}
order.xml
<?xml version="1.0" encoding="utf-8"?><Order><CustomerName>微咲</CustomerName><OrderNumber>00000001</OrderNumber><Items><OrderItem Name="英雄联盟" Count="7" /><OrderItem Name="羽毛球" Count="2" /><OrderItem Name="编程" Count="1" /></Items></Order>
读取XML
读取带有属性的XML文档
using System;using System.Xml;namespace _140_读取XML文档{class Program{static void Main(string[] args){XmlDocument doc = new XmlDocument();//加载要读取的xml文档doc.Load("order.xml");//获得根节点XmlElement order = doc.DocumentElement;//获得子节点 集合XmlNodeList xnl= order.ChildNodes;foreach (XmlNode item in xnl){Console.WriteLine(item.InnerText);}Console.ReadKey();}}}
删除XML节点中数据
using System;using System.Xml;namespace _141_删除XML中节点{class Program{static void Main(string[] args){XmlDocument doc = new XmlDocument();doc.Load("order.xml");//拿到指定节点的名字XmlNode xn= doc.SelectSingleNode("/Order/Items");xn.RemoveAll();doc.Save("order.xml");Console.WriteLine("删除成功");Console.ReadKey();}}}
