C#全攻略:XML操作实践(读写、修改、删除及Dataset应用)
102 浏览量
更新于2024-08-30
收藏 67KB PDF 举报
在C#编程中,XML(可扩展标记语言)是一种常用的数据存储和交换格式,特别是在Web服务和配置管理中。本文档提供了C#操作XML的详细指南,包括读取、写入、更新和删除节点,以及与DataSet的整合,对于开发者来说非常实用。
首先,我们来看如何向XML文件中插入新节点。例如,假设有一个名为`bookstore.xml`的文件,包含书籍信息,我们可以使用`XmlDocument`类来实现动态添加内容。下面是一段示例代码:
```csharp
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root = xmlDoc.SelectSingleNode("bookstore"); // 查找根节点
XmlElement xe1 = xmlDoc.CreateElement("book"); // 创建新的book元素
xe1.SetAttribute("genre", "李赞红"); // 设置genre属性
xe1.SetAttribute("ISBN", "2-3631-4"); // 设置ISBN属性
XmlElement xesub1 = xmlDoc.CreateElement("title");
xesub1.InnerText = "CS从入门到精通"; // 设置title文本节点
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); // 添加price节点
root.AppendChild(xe1); // 将新节点添加到root节点下
xmlDoc.Save("bookstore.xml");
```
这段代码首先加载XML文件,然后通过XPath表达式找到`bookstore`节点。接着,创建一个新的`book`元素,并设置其属性和子元素。最后,将这个新节点添加到原有的XML结构中,并保存回原文件。
接下来是修改节点的部分。如果需要将某个节点的属性或文本内容进行更新,可以使用`SelectSingleNode`方法定位到目标节点,然后直接修改属性或子节点的值。这里没有提供具体的修改代码,但你可以根据需要使用类似以下的步骤:
```csharp
XmlNodeList nodeList = xmlDoc.SelectNodes("//book[genre='李赞红']"); // 查找genre为"李赞红"的book节点
XmlNode targetNode = nodeList[0]; // 获取第一个匹配的节点
targetNode.Attributes["genre"].Value = "update李赞红"; // 修改genre属性
// 对子节点进行修改,例如 title 或 author
targetNode.SelectSingleNode("title").InnerText = "亚胜";
xmlDoc.Save("bookstore.xml");
```
这部分代码首先筛选出所有genre属性为"李赞红"的`book`节点,然后修改第一个找到的节点的genre属性,并更新相应子节点的内容。
另外,C#中的DataSet是.NET框架中用于存储结构化数据的一种数据集,可以方便地与XML文件交互。如果你希望将数据从XML加载到DataSet,可以使用`XmlReader`或`XmlDataSource`类。将XML与DataSet结合,可以简化数据处理流程并提高应用程序的性能。
C#操作XML涉及到节点的增删改查,以及与DataSet的集成,这都是开发中常见的任务。熟练掌握这些技巧,能够帮助你更好地管理XML数据,提高代码的可维护性和灵活性。
2021-09-27 上传
2022-09-14 上传
2011-10-12 上传
2020-09-03 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38703866
- 粉丝: 5
- 资源: 953
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案