C#中XML文件的增删改插操作详解

需积分: 50 3 下载量 167 浏览量 更新于2024-09-15 收藏 39KB DOC 举报
在C#中对XML文件进行修改、新增、删除和插入操作是常见的任务,特别是在处理配置文件或数据持久化时。以下是如何使用 XmlDocument 类来实现这些操作的步骤,以 bookstore.xml 文件为例: 首先,我们需要创建一个 XmlDocument 对象来加载并处理 XML 文档: ```csharp XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("bookstore.xml"); ``` 1. 修改现有节点:如果你想更改已有节点的内容,可以先通过 XPath 选择器找到该节点,然后更新其属性或文本值。例如,如果要将 `<title>` 节点的文本改为 "C#编程艺术",可以这样操作: ```csharp XmlNode titleNode = xmlDoc.SelectSingleNode("//title[@title='Oberon'sLegacy']"); if (titleNode != null) { titleNode.InnerText = "C#编程艺术"; } ``` 2. 新增节点:如你提供的示例,为了在 `<bookstore>` 节点下添加一个新书节点,首先要找到 `<bookstore>`,然后创建新的 `<book>` 元素,并设置属性和子元素: ```csharp XmlNode root = xmlDoc.SelectSingleNode("bookstore"); XmlElement xe1 = xmlDoc.CreateElement("book"); xe1.SetAttribute("genre", "科幻"); // 替换为 "李赞红" 如果需要 xe1.SetAttribute("ISBN", "2-3631-4"); XmlElement xesub1 = xmlDoc.CreateElement("title"); xesub1.InnerText = "C#编程艺术"; xe1.AppendChild(xesub1); XmlElement xesub2 = xmlDoc.CreateElement("author"); xesub2.InnerText = "候捷"; xe1.AppendChild(xesub2); XmlElement xesub3 = xmlDoc.CreateElement("price"); xesub3.InnerText = "58.3"; xe1.AppendChild(xesub3); root.AppendChild(xe1); ``` 3. 删除节点:如果你想删除某个节点,同样需要先找到它,然后调用 `RemoveChild()` 方法。例如,要删除具有特定 ISBN 的书: ```csharp XmlNode bookToRemove = xmlDoc.SelectSingleNode("//book[ISBN='2-3631-4']"); if (bookToRemove != null) { root.RemoveChild(bookToRemove); } ``` 4. 保存文档:完成所有修改后,别忘了调用 `Save()` 方法将更改写回原文件: ```csharp xmlDoc.Save("bookstore.xml"); ``` 以上就是如何在 C# 中通过 XmlDocument 对 XML 文件进行修改、新增、删除和插入操作的基本流程。请注意,实际应用中可能还需要处理异常和错误,确保操作成功。同时,XPath 选择器提供了灵活的查询能力,可根据具体需求进行更复杂的节点定位和操作。