版权声明:版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/shaotaiban1097/article/details/82722339
XML的基本用法
新建XML文档
public static void CreateXML() {
/*
* XML:可扩展的标记语言
* 用于存储数据,类似于小型数据库
* 严格区分大小写
* 标签不固定
* 标签成对出现
*/
//Test : 通过代码创建XML文档
//Step1:引用命名空间System.Xml;
//Step2:创建XML文档对象
XmlDocument doc = new XmlDocument();
//Step3:创建第一行描述信息,并添加到doc文档中 Element 与 Node的关系,文档中所有内容都属于Element,其中标签属于Node,
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(dec);
//Step4:XML必须包含且仅能包含一个根结点
XmlElement order = doc.CreateElement("Order");
doc.AppendChild(order);
//Step5:给根结点创建子结点
XmlElement customerName = doc.CreateElement("customerName");
customerName.InnerText = "张三";
order.AppendChild(customerName);
//Step6:给customerName添加子结点
XmlElement customerNumber = doc.CreateElement("customerNumber");
customerNumber.InnerText = "100000001";
order.AppendChild(customerNumber);
XmlElement items = doc.CreateElement("items");
order.AppendChild(items);
//Step6:给结点添加属性
XmlElement orderItem1 = doc.CreateElement("OrderItems");
orderItem1.SetAttribute("Name", "手机");
orderItem1.SetAttribute("Count", "1");
items.AppendChild(orderItem1);
XmlElement orderItem2 = doc.CreateElement("OrderItems");
orderItem2.SetAttribute("Name", "手表");
orderItem2.SetAttribute("Count", "2");
items.AppendChild(orderItem2);
XmlElement orderItem3 = doc.CreateElement("OrderItems");
orderItem3.SetAttribute("Name", "手环");
orderItem3.SetAttribute("Count", "3");
items.AppendChild(orderItem3);
doc.Save("books.xml");
Console.WriteLine("保存成功");
//如果没有显示。保存路径 -- 解决方案- 显示所有文件(该按钮有可能需要点"更多"箭头) - bin - debug
}
追加XML文档
public static void AppendXML() {
//追加XML文档
XmlDocument doc = new XmlDocument();
//如果文件存在 -- 追加
//如果文件不存在 -- 创建
if (File.Exists("books.xml")) {
//加载XML
doc.Load("books.xml");//bin目录下
//获取文件根结点
XmlElement books = doc.DocumentElement;
//然后追加子结点
XmlElement other = doc.CreateElement("Other");
books.AppendChild(other);
} else {
//创建XML文档第一行
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
//创建根结点
XmlElement books = doc.CreateElement("Books");
doc.AppendChild(books);
}
doc.Save("books.xml");
Console.WriteLine("保存成功");
}
加载XML文档的节点
public static void LoadXML() {
XmlDocument doc = new XmlDocument();
//加载要读取的XML文档
doc.Load("books.xml");
//获取根结点
XmlElement books = doc.DocumentElement;
//获得子结点,返回结点的集合
XmlNodeList xnl = books.ChildNodes;
foreach (XmlNode item in xnl) {
Console.WriteLine(item.InnerText);
}
}
读取XML文档节点中的属性
public static void LoadAttribute() {
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
//获取结点集合
XmlNodeList xmlNodeList = doc.SelectNodes("/Order/Items/OrderItem");
foreach (XmlNode node in xmlNodeList) {
//获取属性
Console.WriteLine(node.Attributes["name"].Value);
Console.WriteLine(node.Attributes["Count"].Value);
}
}
删除XML文档的节点
public static void DeleteNode() {
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
//获取单个结点
XmlNode xn = doc.SelectSingleNode("/Order/Items");
//删除结点
xn.RemoveAll();
//保存
doc.Save("books.xml");
Console.WriteLine("删除并保存成功");
}
我的另一篇关于学习XML后的实例Demo:
https://blog.csdn.net/shaotaiban1097/article/details/82723036