c#通过xpath读取xml示例

以下是 "C# 通过 XPath 读取 XML" 的完整攻略:

示例 1:读取 XML 文档中的数据

假设我们有一个名为 "sample.xml" 的 XML 文件,其内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

我们可以使用以下代码从该文件中读取特定的元素:

using System;
using System.Xml;

namespace ReadXML
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("sample.xml");
            XmlNodeList bookList = doc.SelectNodes("//book");
            foreach (XmlNode book in bookList)
            {
                string category = book.Attributes["category"].Value;
                string title = book.SelectSingleNode("title").InnerText;
                string author = book.SelectSingleNode("author").InnerText;
                string year = book.SelectSingleNode("year").InnerText;
                string price = book.SelectSingleNode("price").InnerText;

                Console.WriteLine("Category: {0}", category);
                Console.WriteLine("Title: {0}", title);
                Console.WriteLine("Author: {0}", author);
                Console.WriteLine("Year: {0}", year);
                Console.WriteLine("Price: {0}", price);
            }
        }
    }
}

这段代码首先创建了一个 XmlDocument 对象并加载了文件 "sample.xml"。然后,它使用 XPath 选择所有名为 "book" 的元素,以便对这些元素进行迭代。在每次迭代中,我们首先读取元素 "book" 的 "category" 属性,并使用 SelectSingleNode 方法获取 "title"、"author"、"year" 和 "price" 元素的文本内容。最后,我们将这些值打印到控制台。

在运行该应用程序后,我们会看到以下输出:

Category: children
Title: Harry Potter
Author: J.K. Rowling
Year: 2005
Price: 29.99
Category: web
Title: Learning XML
Author: Erik T. Ray
Year: 2003
Price: 39.95

示例 2:使用 XPath 获取 XML 中的节点集合

假设我们有另一个名为 "sample2.xml" 的 XML 文件,其内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<people>
  <person>
    <name>John Smith</name>
    <age>35</age>
  </person>
  <person>
    <name>Jane Doe</name>
    <age>25</age>
  </person>
  <person>
    <name>Bob Johnson</name>
    <age>42</age>
  </person>
</people>

我们可以使用以下代码获取所有 "person" 元素的 "name" 子元素:

using System;
using System.Xml;

namespace ReadXML
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("sample2.xml");
            XmlNodeList nameList = doc.SelectNodes("//person/name");
            foreach (XmlNode name in nameList)
            {
                Console.WriteLine(name.InnerText);
            }
        }
    }
}

这段代码与前面的示例相似,但是它使用了不同的 XPath 表达式 "//person/name",它选择所有名为 "person" 的元素并且在每个 "person" 元素内部选择名为 "name" 的子元素。最后,我们打印了每个 "name" 元素的文本内容。

在运行该应用程序后,我们会看到以下输出:

John Smith
Jane Doe
Bob Johnson

以上就是 "C# 通过 XPath 读取 XML" 的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#通过xpath读取xml示例 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • asp 读取 utf-8格式文档并生成utf-8格式文档的乱码问题

    要解决“ASP 读取 UTF-8 格式文档并生成 UTF-8 格式文档的乱码问题”,需要采取以下步骤: 1. 设置文件编码为 UTF-8 首先,要确保读取的文档确实是 UTF-8 编码格式。 在写 ASP 页面之前,请确认该页面采用 UTF-8 编码格式。可在 ASP 页面头部添加如下代码设置页面编码: <%@LANGUAGE="VBSCRI…

    html 2023年5月31日
    00
  • PHP 使用header函数设置HTTP头的示例解析 表头

    PHP 中通过 header() 函数可以设置 HTTP 头,包括设置响应头和请求头。使用 header() 函数可以实现网页的跳转、缓存控制、设置 Cookie 等操作。 下面来看一下怎样使用 header() 函数设置 HTTP 头: 设置响应头 设置响应头主要是用于修改服务器的响应信息,比如设置网页的编码格式、防止页面被嵌入框架等。 示例一 以下示例展…

    html 2023年5月30日
    00
  • CSS字符编码引起乱码的快速解决方法

    CSS字符编码引起乱码的快速解决方法主要有两种,分别是使用iconfont字体图标和手动设置CSS文件编码。下面将具体展开说明。 1. 使用iconfont字体图标 Iconfont字体图标是一种通过CSS技术将图标转换成字体的方式,常用于解决字符编码引起的乱码问题。具体步骤如下: 步骤一:下载Iconfont字体库 先在阿里巴巴矢量图标库中搜索想要使用的图…

    html 2023年5月31日
    00
  • vscode怎么写markdown? VSCode编辑Markdown的技巧

    以下是VSCode编辑Markdown的完整攻略: 安装Markdown插件:首先,您需要在VSCode中安装Markdown插件。在VSCode的扩展商店中搜索“Markdown”,选择一个评分较高的插件进行安装即可。 创建Markdown文件:在VSCode中,您可以通过“文件”菜单或快捷键Ctrl+N创建一个新的Markdown文件。在新建文件后,您可…

    html 2023年5月17日
    00
  • springboot 中文件上传下载实例代码

    关于“springboot 中文件上传下载实例代码”,我们可以从以下几个方面进行介绍和实例演示: 一、上传文件实例代码 1.1 添加依赖 在 pom.xml 文件中添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&…

    html 2023年5月31日
    00
  • Android中主要资源文件及文件夹介绍

    Android中主要资源文件及文件夹介绍 在Android开发中,资源文件的使用非常常见。不同类型的资源文件放在不同的文件夹下,Android的编译器会根据文件夹的名字自动生成R.java类,该类中包含了应用程序中所有资源文件的引用。在这篇文章中,我们将主要介绍Android中主要资源文件及文件夹的介绍。 layout 在Android中,layout文件夹…

    html 2023年5月30日
    00
  • java操作xml的方法汇总及解析

    Java操作XML的方法汇总及解析 在Java中,我们可以使用多种方式来操作XML文件。下面将介绍常见的几种方式及其优缺点。 DOM方式 DOM(Document Object Model)是一种基于树形结构的XML解析方式,它将整个XML文件解析到内存中,并形成一棵树,我们可以通过访问树节点的方式来操作XML。 优点: 可以对XML进行增删改查等操作 可以…

    html 2023年5月30日
    00
  • Android XML文件中的@、?、@+的该怎么理解?

    XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言,主要应用于各种XML配置文件,例如Android中的布局文件、字符串资源等。 在 Android XML 文件中,我们有时会看到一些特殊符号,例如 @、?、@+ 等,这些符号是用于引用资源的。 下面,我们来详细讲解这些符号的用法及含义: @ 符号 @ 符号用于引…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部