C# XmlDocument遍历XML获取元素属性与子节点值示例
71 浏览量
更新于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数据格式的数据源非常实用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-01 上传
179 浏览量
2017-10-27 上传
174 浏览量
2020-08-31 上传
2020-08-31 上传
weixin_38568548
- 粉丝: 4
- 资源: 901