C# XmlDocument遍历XML获取元素属性与子节点值示例
138 浏览量
更新于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数据格式的数据源非常实用。
177 浏览量
2017-10-27 上传
2020-08-31 上传
2020-08-31 上传
2013-04-08 上传
198 浏览量
weixin_38568548
- 粉丝: 4
- 资源: 901
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程