C# XmlDocument遍历XML获取元素属性与子节点值示例
36 浏览量
更新于2024-09-01
收藏 54KB PDF 举报
在C#编程中,处理XML数据是一种常见的需求,尤其是在与Web服务交互或者数据持久化时。本文将详细介绍如何使用C#的XmlDocument类来读取名为"school.xml"的XML文件,该文件包含了启明培训学校的学生成绩信息,包括年级、班级、教师和学生等元素。以下是实现这一功能的步骤和关键代码段:
首先,创建一个XmlDocument对象并加载XML文件:
```csharp
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("school.xml");
```
加载完成后,我们可以使用`XmlNodeList`来获取XML文档中的所有元素。在本例中,我们关注的是`<student>`元素,因此可以这样获取:
```csharp
XmlNodeList studentNodes = xmlDoc.GetElementsByTagName("student");
```
接下来,遍历`studentNodes`,对于每个学生节点,我们可以获取其属性(如`<studentid>`)和子节点(如`<name>`和`<sex>`)的值:
```csharp
foreach (XmlNode node in studentNodes)
{
// 获取学生ID
string studentId = node.Attributes["studentid"].Value;
// 获取学生姓名
XmlNode nameNode = node.SelectSingleNode("name");
string name = nameNode.InnerText;
// 获取学生性别
XmlNode sexNode = node.SelectSingleNode("sex");
string sex = sexNode.InnerText;
// 打印学生信息
Console.WriteLine($"学生ID: {studentId}, 姓名: {name}, 性别: {sex}");
}
```
对于每个`<class>`和`<grade>`元素,也可以采用类似的方法获取其对应的属性和子节点。如果要获取属性,可以直接通过`Attributes`集合;如果要获取文本内容,可以使用`InnerText`或`SelectSingleNode`配合`InnerText`来获取。
此外,如果XML文件中包含嵌套的属性,如`<teacher teach="语文">`,可以使用XPath表达式`node.SelectSingleNode("//teacher[@teach='语文']/teacherName")`来获取特定属性的值。
总结来说,C#中的XmlDocument类提供了丰富的API来解析XML数据,通过遍历节点、获取属性和子节点,我们可以轻松地提取出XML文件中的各种信息。这个例子展示了如何通过C#代码读取并操作XML文件中的元素和属性值,这对于处理XML数据格式的数据源非常实用。
2025-01-28 上传
258 浏览量
180 浏览量
2020-08-31 上传
858 浏览量
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38568548
- 粉丝: 4
最新资源
- 编程思想:Bruce Eckel的Thinking in Java第三版中文版
- T61系列WinXP安装教程:告别兼容模式与难题
- 基于PowerBuilder的客房管理系统设计与实现
- 理解与应对:病毒处理技术详解
- SQL SERVER分页存储过程演进分析
- SQL SERVER 2005中调用Web Service实现外汇转换
- 增值业务平台网管系统技术规划与功能详解
- C/C++常用头文件详解
- Ubuntu 8.04 教程:快速入门与安装指南
- VB.NET中Event机制详解:从基础到自定义
- Eclipse中文教程:快速入门与环境设置
- JDBC API编程实战指南
- 《EJB设计模式》:提升企业应用开发效率的秘密武器
- SQL Server存储过程详解:优势、创建及语法
- ModelMaker 6.20用户手册:基础与设计模式详解
- ASP.NET/XML实例精通:66个深度教程