迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

C# 读取和解析 XML 文件

作者:迹忆客 最近更新:2024/01/16 浏览次数:

在 C# 中,System.Xml 名称空间用于处理 XML 文件。它具有不同的类和方法来处理 XML 文件。我们可以使用该命名空间读取,解析和写入 XML 文件。

在本文中,我们将讨论用于读取和解析 XML 文件的不同方法。


使用 XmlReader 类读取和解析 XML 文件的 C# 程序

C# 中的 XmlReader 类提供了一种访问 XML 数据的有效方法。XmlReader.Read() 方法读取 XML 文件的第一个节点,然后使用 while 循环读取整个文件。

此方法的正确语法如下:

XmlReader VariableName = XmlReader.Create(@"filepath");

while (reader.Read()) {
  // Action to perform repeatidly
}

我们已经在程序中读取并解析的 XML 文件如下。复制此代码并将其粘贴到新的文本文件中,并将其另存为 .xml,以使用该文件执行以下给出的程序。

<?xml version="1.0" encoding="utf-8"?>  
<Students>  
 <Student>  
  </Student> 
 <Student>  
    <Name>Olivia</Name>  
    <Grade>A</Grade>  
  </Student>  
  <Student>  
    <Name>Laura</Name>  
    <Grade>A+</Grade>  
  </Student>  
  <Student>  
    <Name>Ben</Name>  
    <Grade>A-</Grade>  
  </Student>  
  <Student>  
    <Name>Henry</Name>  
    <Grade>B</Grade>  
  </Student>  
  <Student>  
    <Name>Monica</Name>  
    <Grade>B</Grade>  
  </Student>  
</Students> 

示例代码:

using System;
using System.Xml;

namespace XMLReadAndParse {
  class XMLReadandParse {
    static void Main(string[] args) {
      // Start with XmlReader object
      // here, we try to setup Stream between the XML file nad xmlReader
      using (XmlReader reader = XmlReader.Create(@"d:\Example.xml")) {
        while (reader.Read()) {
          if (reader.IsStartElement()) {
            // return only when you have START tag
            switch (reader.Name.ToString()) {
              case "Name":
                Console.WriteLine("The Name of the Student is " + reader.ReadString());
                break;
              case "Grade":
                Console.WriteLine("The Grade of the Student is " + reader.ReadString());
                break;
            }
          }
          Console.WriteLine("");
        }
      }
      Console.ReadKey();
    }
  }
}

在这里,我们创建了一个 XmlReader 对象,然后使用 Create() 方法创建了给定 XML 文件的阅读器流。

然后,我们使用了 XmlReader.Read() 方法来读取 XML 文件。该方法返回一个 bool 值,该值指示我们创建的流是否包含 XML 语句。

之后,我们使用 XmlReader.IsStartElement() 方法检查是否有任何起始元素。因为我们在 XML 数据中有两个元素字段,所以我们使用了 switch 语句通过 ReadString() 方法从两个字段中读取数据。

输出:

The Name of the Student is Olivia

The Grade of the Student is A

The Name of the Student is Laura

The Grade of the Student is A+

The Name of the Student is Ben

The Grade of the Student is A-

The Name of the Student is Henry

The Grade of the Student is B

The Name of the Student is Monica

The Grade of the Student is B

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中获取组合框的选定值

发布时间:2024/01/20 浏览次数:151 分类:编程语言

本教程展示了如何在 C# 中获取 ComboBox 的选定值。在本教程中,你将学习在 C# 中获取 ComboBox 的选定文本和值的不同方法。获取 ComboBox 控件的选定值的最常用方法是使用 C# 在按钮单击事件中获取

在 C# 中创建一个 UDP 服务器

发布时间:2024/01/20 浏览次数:158 分类:编程语言

在本文中,我们将学习如何在 C# 中创建 UDP 服务器。本文将展示如何在 C# 中创建一个简单的 UDP 服务器。在 C# 中创建一个 UDP 服务器

C# 中的 LINQ 分组

发布时间:2024/01/20 浏览次数:51 分类:编程语言

LINQ 中的 group by 用于按 C# 中的某个公共值对对象序列进行分组 C# 中的 LINQ 分组 LINQ 将类似 SQL 的查询功能与 C# 中的数据结构集成在一起。

使用 C# 在 LINQ 查询中按多列分组

发布时间:2024/01/20 浏览次数:167 分类:编程语言

这是一篇关于 LINQ 查询的使用以及我们如何使用 LINQ 查询按列分组的文章。本文简要介绍了使用 C# 进行的 LINQ 查询。此外,它还讨论了如何使用 LINQ 查询按多列对结果进行分组。

在 C# 中捕获多个异常

发布时间:2024/01/20 浏览次数:135 分类:编程语言

有两种主要方法可用于捕获 C# 中的多个异常,即 Exception 类和 catch 子句中的 if 语句。使用 C# 中的 Exception 类捕获多个异常 Exception 类用于表示 C# 中的一般异常。

C# 中为无效参数或参数引发的异常类型

发布时间:2024/01/20 浏览次数:71 分类:编程语言

本教程将教你如何在 C# 中为无效参数或参数抛出不同类型的异常。异常提供有关 C# 程序中的运行时错误或预期不会发生或违反系统/应用程序约束的条件的信息。在本教程中,你将学习与无效参

C# 中的异常列表

发布时间:2024/01/20 浏览次数:128 分类:编程语言

我们将查看本文中可能引发的 C# 异常。System Exception 类是 C# 编程语言中预定义的异常类,可用于编程。选择代码中可能出现的异常并将其插入到适当的 catch 块中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便