C# Foreach XML 节点

xml

1个回答

写回答

dassler@126.com

2025-07-05 17:40

+ 关注

XML
XML

C# Foreach XML 节点 实现遍历和操作 XML 数据

在C#编程中,我们经常需要处理XML数据。XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它具有自我描述性和可扩展性。在本文中,我们将介绍如何使用C#的foreach循环遍历XML节点,并演示如何在遍历过程中对XML节点进行操作。

遍历XML节点

要遍历XML节点,我们首先需要加载XML文档。在C#中,我们可以使用XMLDocument类来加载和操作XML数据。下面是一个示例XML文档:

<?XML version="1.0" encoding="UTF-8"?>

<students>

<student>

<name>John Doe</name>

<age>20</age>

<gender>Male</gender>

</student>

<student>

<name>Jane Smith</name>

<age>22</age>

<gender>Female</gender>

</student>

</students>

我们可以使用以下代码加载XML文档:

XMLDocument XMLDoc = new XMLDocument();

XMLDoc.Load("students.XML");

加载完成后,我们可以使用foreach循环遍历XML节点。在C#中,我们可以使用XMLNodeList类的GetEnumerator方法来获取XML节点的枚举器。然后,我们可以使用foreach循环遍历XML节点。下面是一个示例代码:

XMLNodeList studentNodes = XMLDoc.SelectNodes("//student");

foreach (XMLNode studentNode in studentNodes)

{

// 在此处添加对XML节点的操作

}

在上面的代码中,我们使用XPath表达式"//student"选择所有名为"student"的XML节点。然后使用foreach循环遍历每个学生节点。

操作XML节点

在遍历XML节点过程中,我们可以对节点进行各种操作,例如读取节点的值、修改节点的值、添加新的节点等。下面是一些常用的操作示例:

1. 读取节点的值:

string name = studentNode.SelectSingleNode("name").InnerText;

int age = int.Parse(studentNode.SelectSingleNode("age").InnerText);

string gender = studentNode.SelectSingleNode("gender").InnerText;

2. 修改节点的值:

studentNode.SelectSingleNode("name").InnerText = "New Name";

3. 添加新的节点:

XMLElement newElement = XMLDoc.CreateElement("grade");

newElement.InnerText = "A";

studentNode.AppendChild(newElement);

在上面的代码中,我们首先使用SelectSingleNode方法选择指定的节点,然后使用InnerText属性读取或修改节点的值。如果要添加新的节点,我们可以使用CreateElement方法创建一个新的XMLElement对象,并使用AppendChild方法将其添加到指定的父节点中。

案例代码

下面是一个完整的示例代码,展示了如何使用C#的foreach循环遍历和操作XML节点:

csharp

using System;

using System.XML;

class Program

{

static void MAIn(string[] args)

{

XMLDocument XMLDoc = new XMLDocument();

XMLDoc.Load("students.XML");

XMLNodeList studentNodes = XMLDoc.SelectNodes("//student");

foreach (XMLNode studentNode in studentNodes)

{

string name = studentNode.SelectSingleNode("name").InnerText;

int age = int.Parse(studentNode.SelectSingleNode("age").InnerText);

string gender = studentNode.SelectSingleNode("gender").InnerText;

Console.WriteLine("Name: " + name);

Console.WriteLine("Age: " + age);

Console.WriteLine("Gender: " + gender);

Console.WriteLine();

}

Console.ReadLine();

}

}

上面的代码将遍历XML文档中的每个学生节点,并输出学生的姓名、年龄和性别。

使用C#的foreach循环遍历和操作XML节点是处理XML数据的常见需求。通过使用XMLDocument类和XMLNodeList类,我们可以轻松地加载、遍历和操作XML数据。在遍历XML节点时,我们可以使用XPath表达式选择特定的节点,并使用SelectSingleNode方法读取或修改节点的值。此外,我们还可以使用CreateElement方法创建新的节点,并使用AppendChild方法将其添加到指定的父节点中。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号