C#实现XML文件基础操作:创建、遍历与节点操作
需积分: 9 171 浏览量
更新于2024-09-16
1
收藏 57KB DOC 举报
本文主要介绍了如何使用C#进行XML文件的基本操作,包括创建、读取、修改和删除XML节点。XML(可扩展标记语言)作为一种重要的数据交换格式,具有良好的结构性和灵活性,使得它在数据存储、交换和传输中非常实用。
首先,我们来探讨如何创建XML文件。为了生成上述示例中的XML文件,我们可以使用C#的`System.Xml`命名空间中的`XmlWriter`类。以下是一个简单的示例:
```csharp
using System;
using System.Xml;
public void CreateXMLFile()
{
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration declaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
xmlDoc.AppendChild(declaration);
XmlElement rootElement = xmlDoc.CreateElement("Computers");
xmlDoc.AppendChild(rootElement);
// 添加计算机信息
XmlElement computer = xmlDoc.CreateElement("Computer");
computer.SetAttribute("ComputerID", "11111111");
computer.SetAttribute("Description", "MadeinChina");
xmlDoc.DocumentElement.AppendChild(computer);
XmlElement nameNode = xmlDoc.CreateElement("name");
nameNode.InnerText = "Lenovo";
computer.AppendChild(nameNode);
XmlElement priceNode = xmlDoc.CreateElement("price");
priceNode.InnerText = "5000";
computer.AppendChild(priceNode);
// 添加第二个计算机元素
computer = xmlDoc.CreateElement("Computer");
computer.SetAttribute("ComputerID", "2222222");
computer.SetAttribute("Description", "MadeinUSA");
xmlDoc.DocumentElement.AppendChild(computer);
// ...(其余属性设置类似)
xmlDoc.Save("Computers.xml"); // 保存到文件
}
```
接下来,我们通过`XmlDocument`或`XDocument`类来遍历并操作XML文件。例如,读取节点信息可以使用`SelectNodes`或`SelectSingleNode`方法:
```csharp
XmlDocument doc = new XmlDocument();
doc.Load("Computers.xml");
// 遍历所有Computer节点
foreach (XmlNode node in doc.SelectNodes("//Computer"))
{
string id = node.Attributes["ComputerID"].Value;
string description = node.Attributes["Description"].Value;
// ...(处理节点内的name和price等信息)
}
// 获取单个节点
string name = doc.SelectSingleNode("//Computer[@ComputerID='2222222']/name").InnerText;
```
修改节点信息时,可以通过获取节点后修改其属性或子元素的值:
```csharp
// 修改某个计算机的价格
XmlNode priceNode = doc.SelectSingleNode("//Computer[@ComputerID='2222222']/price");
priceNode.InnerText = "12000";
```
向XML文件添加节点则是通过先找到父节点,然后插入新节点:
```csharp
// 新增一个Computer节点
XmlElement newComputer = xmlDoc.CreateElement("Computer");
newComputer.SetAttribute("ComputerID", "3333333");
newComputer.SetAttribute("Description", "MadeinGermany");
XmlElement newNode = xmlDoc.CreateElement("name");
newNode.InnerText = "Dell";
newComputer.AppendChild(newNode);
newPriceNode = xmlDoc.CreateElement("price");
newPriceNode.InnerText = "8000";
newComputer.AppendChild(newPriceNode);
rootElement.AppendChild(newComputer); // 添加到根节点下
```
最后,删除指定节点需要定位到该节点,然后使用`RemoveChild`方法:
```csharp
// 删除价格为10000的计算机节点
XmlNode nodeToRemove = doc.SelectSingleNode("//Computer[@price='10000']");
if (nodeToRemove != null)
nodeToRemove.ParentNode.RemoveChild(nodeToRemove);
```
通过以上步骤,你可以基本掌握在C#中对XML文件进行创建、读取、修改和删除的基本操作。这不仅适用于个人学习,也是实际项目中处理数据交换的常见需求。希望这些内容对你有所帮助,也欢迎提出宝贵意见。
2012-12-11 上传
2022-09-24 上传
2022-09-24 上传
2022-09-22 上传
2022-09-24 上传
2022-09-20 上传
2022-07-15 上传
SUNYANFENG777
- 粉丝: 0
- 资源: 15
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍