C#操作XML文件:读取与写入技巧

需积分: 10 18 下载量 45 浏览量 更新于2024-09-12 收藏 3KB TXT 举报
"C#读写XML文件" 在C#编程中,XML(Extensible Markup Language)文件是一种常用的数据存储和交换格式。它结构清晰,易于人和机器解析,因此在许多应用程序中都有应用。本篇将介绍如何使用C#的几个核心类来读取和写入XML文件。 首先,我们可以使用`XmlDocument`类来读取和修改XML文件。`XmlDocument`提供了加载XML文档到内存中的功能,并且可以进行DOM(Document Object Model)操作,允许我们像处理DOM树一样操作XML数据。 在提供的示例代码中,有一个名为`phone.xml`的XML文件,包含了一个电话簿的结构,每个电话记录由`<phone>`元素表示,包含`<Name>`、`<Number>`、`<City>`和`<DateOfBirth>`子元素。以下是如何使用`XmlDocument`读取和写入XML文件的方法: ```csharp private void xmlFun() { XmlDocument doc = new XmlDocument(); // 加载XML文件 doc.Load(Server.MapPath("phone.xml")); // 创建新的电话记录元素 XmlElement node = doc.CreateElement("phone"); // 添加属性 XmlAttribute atr = doc.CreateAttribute("id"); atr.InnerText = "003"; node.Attributes.Append(atr); // 添加子元素 XmlNode xnode = (XmlNode)doc.CreateElement("Name"); xnode.InnerText = "testName"; node.AppendChild(xnode); xnode = (XmlNode)doc.CreateElement("Number"); xnode.InnerText = "119"; node.AppendChild(xnode); xnode = (XmlNode)doc.CreateElement("City"); xnode.InnerText = "cs"; node.AppendChild(xnode); // 将新元素添加到XML文档中 doc.DocumentElement.AppendChild(node); // 保存修改后的XML文件 doc.Save(Server.MapPath("phone.xml")); } ``` 这段代码首先创建了一个`XmlDocument`对象并加载了`phone.xml`文件。然后,通过`CreateElement`方法创建了一个新的`phone`元素,并设置了其`id`属性。接着,创建了`Name`、`Number`和`City`子元素,并分别设置了它们的文本内容。最后,将新创建的`phone`元素添加到XML文档的根元素(`PhoneBook`)下,并保存修改后的文档。 除了`XmlDocument`,还有其他类可以用于XML文件的读写。例如,`XmlTextWriter`用于写入XML,它提供了一种流式写入的方式,可以更有效地处理大型XML文件。`XmlTextReader`则用于读取XML,它以只进不退的方式逐节点读取,适合用于读取大文件或网络流。 另外,`SqlCommand.ExecuteXmlReader()`方法在数据库操作中用于执行返回XML结果集的SQL查询。这个方法通常在需要从数据库检索XML格式数据时使用,例如,当查询结果是一个复杂的数据结构,可以以XML形式返回时。 C#提供了丰富的XML处理库,包括`XmlDocument`、`XmlTextWriter`、`XmlTextReader`等,可以满足不同场景下的XML读写需求。理解并熟练掌握这些工具,对于开发涉及XML数据处理的应用程序至关重要。