编辑
2025-09-24
C#
00

目录

摘要
正文

摘要

XML(可扩展标记语言)是一种广泛应用于Web服务、数据交换和文档存储的标记语言。XmlDocument是.NET框架中用于操作XML文档的类,它提供了丰富的方法和属性,使得我们可以方便地创建、增加、删除、修改XML文档中的内容。

下面我们将通过一个简单的示例,来说明如何使用C#中的XmlDocument类完成XML文件的创建、增加、删除、修改等操作。

正文

创建一个Xml

C#
private void btnCreate_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); //创建类型声明节点 XmlNode node = doc.CreateXmlDeclaration("1.0", "utf-8", ""); doc.AppendChild(node); //创建Xml根节点 XmlNode root =doc.CreateElement("Users"); doc.AppendChild(root); //创建子节点 XmlNode item =doc.CreateElement("User"); root.AppendChild(item); XmlNode it = null; //创建对应Xml节点元素 it = doc.CreateNode(XmlNodeType.Element, "name", null); it.InnerText = "刘备"; item.AppendChild(it); it = doc.CreateNode(XmlNodeType.Element, "age", null); it.InnerText = "48"; item.AppendChild(it); //创建子节点 item = doc.CreateElement("User"); root.AppendChild(item); it = doc.CreateNode(XmlNodeType.Element, "name", null); it.InnerText = "关羽"; item.AppendChild(it); it = doc.CreateNode(XmlNodeType.Element, "age", null); it.InnerText = "45"; item.AppendChild(it); //创建子节点 item = doc.CreateElement("User"); root.AppendChild(item); it = doc.CreateNode(XmlNodeType.Element, "name", null); it.InnerText = "张飞"; item.AppendChild(it); it = doc.CreateNode(XmlNodeType.Element, "age", null); it.InnerText = "42"; item.AppendChild(it); doc.Save("./users.xml"); }

生成文件

XML
<?xml version="1.0" encoding="utf-8"?> <Users> <User> <name>刘备</name> <age>48</age> </User> <User> <name>关羽</name> <age>45</age> </User> <User> <name>张飞</name> <age>42</age> </User> </Users>

image.png

修改Xml节点

C#
private void btnModify_Click(object sender, EventArgs e) { XmlDocument doc=new XmlDocument(); //加载Xml文件 doc.Load("./users.xml"); //查找要修改的节点 XmlNode node = doc.SelectNodes("Users/User")[1]; //取出user节点下所有的子节点 XmlNodeList nodelist = node.ChildNodes; foreach (var item in nodelist) { //将节点转换一下类型 XmlElement element = (XmlElement)item; //判断该子节点是否是要查找的节点 if (element.Name == "name") { //设置新值 element.InnerText = "刘邦"; break; } } //保存修改的Xml文件内容 doc.Save("./users.xml"); }

删除节点

C#
private void btnDelete_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); //加载Xml文件 doc.Load("./users.xml"); //查找要删除的根节点 XmlNode node = doc.SelectNodes("Users/User")[1]; //删除age节点 var item = node.ChildNodes[1]; node.RemoveChild(item); //保存修改的Xml文件内容 doc.Save("./users.xml"); }

清空指定节点

C#
private void btnClear_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); //加载Xml文件 doc.Load("./users.xml"); //清空age节点下的数据 XmlNode node = doc.SelectNodes("Users/User")[1]; //删除age节点 var nodelist = node.ChildNodes; foreach (var item in nodelist) { XmlElement element= (XmlElement)item; if (element.Name == "age") { element.RemoveAll(); } } //保存修改的Xml文件内容 doc.Save("./users.xml"); }

image.png

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!