C#全攻略:XML操作实践(读写、修改、删除及Dataset应用)
141 浏览量
更新于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 上传
2021-01-01 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38703866
- 粉丝: 5
- 资源: 953
最新资源
- capstone2
- goservice:使用go和etcd发现和注册工具
- tidy000000.rar
- WITSML client:******注意:该软件已过时! ******-开源
- Ruby on Rails开发 从入门到精通实战教程.rar
- STATUS_INVALID_IMAGE_HASH.zip
- jQuery实现导航栏上下滑动效果,鼠标离开菜单后,导航自动回复原状,兼容主流浏览器
- Proyecto_concu
- iot-coap:使用CoAP协议进行物联网学习
- VC++漂亮的自绘菜单源码,模仿早期的QQ菜单
- openshift-diy-spring-boot-sample:openshift-diy-spring-boot-sample
- Grid++Report6.0易语言静态编译6.0测试.rar
- jenkins jmeter ant build.xml
- 防刷刷-迅速了解商品优缺点-crx插件
- WST 500.12-2016电子病历共享文档规范第12部分:麻醉术后访视记录.pdf.rar
- servlet-3-e-fundamentos-web