C#中XML文件的增删改插操作详解
需积分: 50 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 选择器提供了灵活的查询能力,可根据具体需求进行更复杂的节点定位和操作。
2011-06-23 上传
2022-09-24 上传
2014-10-31 上传
2023-09-08 上传
2023-07-28 上传
2024-09-12 上传
2023-07-28 上传
2023-08-12 上传
2023-08-11 上传
ght844494008
- 粉丝: 0
- 资源: 4
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全