xml 可扩展标记语言
XML:存储数据
XML的标签自定义 成对出现
XML严格区分大小写 HTML不区分大小写
xml文档必须有一个根节点 ,且只能有一个根节点
元素:XML文件中所有都是
节点:一个个标签
通过C#代码来创建XML文档
using System.Xml;
//创建XML文档对象
XmlDocument doc = new XmlDocument();
//创建第一行描述信息,并添加到文档中
XmlDeclaraction dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
doc.AppendChild(dec);
//创建根节点,并添加到文档中
XmlElement boos = doc.CreateElement("book");
doc.AppendChild(book);
//给根节点创建子节点
XmlElement boos1 = doc.CreateElement("book1");
book.AppendChild(book1);
//给标签写入文本
book1.InnerText = "abc";
结果 <book1>abc</book1>
book1.InnerXml = "<p>aa</p>"
InnerXml 会讲标签显示为标签,InnerText 会转义标签
所以添加文本时用InnerText
添加标签时用.InnerXml
//保存文档
doc.Save("Books.xml");
//创建带属性的XML文档
book1.SetAttribute("name","bookname");
book1.SetAttribute("count","10");
结果 <book1 name="bookname" count="10"></book1>
向XML中追加
1.创建对象
XmlDocument doc = new XmlDocument();
2.判断文件是否存在
using System.Io
if(File.Exists("books.xml"))
{
//加载文件
doc.Load("books.xml");
//获得文件的根节点
XmeElement book = doc.DocumentElement;
}
else
{
//创建文件
}
3.追加内容
//在根节点下追加内容
读取XML文件
1.//加载文件
doc.Load("books.xml");
2.//获得文件的根节点
XmeElement book = doc.DocumentElement;
3.//根据根节点拿到所以子节点 返回子节点的集合
XmlNodeList xnl = book.ChildNodes;
返回的是子节点的内容
4.当XML节点有属性时,读取属性
XMLDocument doc = new XmlDocument();
doc.Load("order.xml");
//返回节点的集合 SelectNodes 选择的是符合条件所有节点
XMLNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
foreach(XMLNode node in xnl )
{
string name = node.Attributes["Name"].Value;
string count = node.Attributes["Count"].Value;
}
order.xml文件内容如下
<Order>
<Items>
<OrderItem Name="avb" Count ="200" />
<OrderItem Name="dd" Count ="200" />
<OrderItem Name="oop" Count ="200" />
<Items/>
<Order/>
删除节点
//选择单一节点 SelectSingleNode选择的是某一个节点
XmlNode xn = doc.SelectSingleNode("/Order/Items");
xn.RemoveAll(); //删除该节点下的所以节点
doc.Save();