XML文件操作(C#)
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>
相关链接:
=======================================================================
高洪臣 (Gavin Gao)
cggos@outlook.com
=======================================================================
高洪臣 (Gavin Gao)
cggos@outlook.com
=======================================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述