C#操作XML文件:读取与写入技巧
需积分: 10 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数据处理的应用程序至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-11-17 上传
2011-10-11 上传
2010-06-15 上传
2011-06-10 上传
2021-01-20 上传
129 浏览量
liucbpro
- 粉丝: 0
- 资源: 15
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录