XML應用於Web開發的許多方面,常用於簡化數據的存儲和共享,它的設計宗旨是傳輸數據,而非顯示數據。下面簡單介紹一下C#是如何對XML文件進行讀取的。
1、首先,建立XML對象並關聯XML文件
string xmlFileName = "student.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlFileName);
2、獲取到xml文件的根節點
//獲取到xml文件的根節點 XmlElement nodeRoot = xmlDoc.DocumentElement;
3、創建新節點
//創建一個新節點 XmlElement nodeNew = xmlDoc.CreateElement("student"); //創建新節點的孩子節點 XmlElement nodeNum = xmlDoc.CreateElement("num"); XmlElement nodeName = xmlDoc.CreateElement("name"); XmlElement nodeAge = xmlDoc.CreateElement("age"); //把孩子節點與新節點建立父子關系 nodeNew.AppendChild(nodeNum); nodeNew.AppendChild(nodeName); nodeNew.AppendChild(nodeAge); //創建節點文本,並關聯節點 XmlText txtNum = xmlDoc.CreateTextNode("001"); XmlText txtName = xmlDoc.CreateTextNode("張三"); XmlText txtAge = xmlDoc.CreateTextNode("22"); nodeNum.AppendChild(txtNum); nodeName.AppendChild(txtName); nodeAge.AppendChild(txtAge);
4、添加新建的節點到文件
//添加新建的節點 nodeRoot.AppendChild(nodeNew);//添加到根節點 //nodeRoot.InsertBefore(nodeNew, nodeRoot.FirstChild);//添加到尾部
5、刪除節點
if (nodeRoot.HasChildNodes) { nodeRoot.RemoveChild(nodeRoot.FirstChild);//刪除首個節點 }
6、遍歷節點
//遍歷student.xml,查看指定節點的age值 XmlNodeList studentList = nodeRoot.SelectNodes("*"); foreach (XmlNode student in studentList) { if (student.FirstChild.InnerText.Equals("004")) { XmlNodeList stuChidNodeList = student.SelectNodes("*"); foreach (XmlNode stuChileNode in stuChidNodeList) { if (stuChileNode.Name.Equals("age")) { Console.Write(stuChileNode.InnerText + " "); } } Console.WriteLine(); break; } else { continue; } }
7、保存XML文件
//保存xml xmlDoc.Save(xmlFileName);
附件:
實驗XML文件(student.xml)
<?xml version="1.0" encoding="utf-8"?> <!--學生根節點--> <students> <student class="clss1"> <num>002</num> <name>hello2</name> <age>22</age> </student> <student class="clss2"> <num>003</num> <name>hello3</name> <age>88</age> </student> <student> <num>004</num> <name>faf</name> <age>43</age> </student> <student> <num>005</num> <name>新人</name> <age>22</age> </student> <student> <num>006</num> <name>新人</name> <age>22</age> </student> <student> <num>001</num> <name>張三</name> <age>22</age> </student> <student> <num>001</num> <name>張三</name> <age>22</age> </student> </students>
相關鏈接:
