0

0

C# 使用XPath查询xml节点

煙雲

煙雲

发布时间:2025-10-27 15:41:02

|

675人浏览过

|

来源于php中文网

原创

答案:在C#中使用XmlDocument类结合XPath可查询XML节点。首先加载XML文件,通过SelectNodes获取多个节点或SelectSingleNode查找单个节点,支持按属性、文本内容等条件筛选,需注意XML格式正确、路径大小写敏感及命名空间处理。

c# 使用xpath查询xml节点

在C#中使用XPath查询XML节点,可以通过 System.Xml 命名空间中的 XmlDocumentXDocument 类来实现。下面以 XmlDocument 为例,介绍如何加载XML并使用XPath查找节点。

1. 使用 XmlDocument 和 SelectNodes 查询多个节点

假设有一个如下结构的XML文件:


  
    C# 入门
    张三
  

  
    XML 编程指南
    李四
  

你可以使用以下代码通过XPath查询所有 Book 节点:

using System;
using System.Xml;

XmlDocument doc = new XmlDocument(); doc.Load("books.xml"); // 或者使用 LoadXml("字符串")

XmlNodeList bookNodes = doc.SelectNodes("/Books/Book");

新普网店系统XpShop.net(捆绑集成Discuz 2.0论坛)
新普网店系统XpShop.net(捆绑集成Discuz 2.0论坛)

新普网店系统XpShop完美结合Discuz 2.0版本论坛。论坛可以到Discuz官方网站或者到XpShop官方网站下载,集成方法请到XpShop官方网站论坛查询软件特点介绍:1、使用ASP.Net(c#)、三层结构开发2、自由选择模板,界面美观,皮肤设计灵活多变3、在线支付:支付宝,网银在线,快钱,paypal,YeePay易宝支付,IPS环讯支付,腾讯财付通4、销售统计,图表分析5、集成多种

下载

foreach (XmlNode node in bookNodes) { string title = node["Title"]?.InnerText; string author = node["Author"]?.InnerText; Console.WriteLine($"标题: {title}, 作者: {author}"); }

2. 使用 SelectSingleNode 查询单个节点

如果你想根据条件查询特定节点,比如查找 ID 为 "2" 的 Book:

XmlNode bookNode = doc.SelectSingleNode("/Books/Book[@ID='2']");

if (bookNode != null) { string title = bookNode["Title"]?.InnerText; Console.WriteLine($"找到书籍: {title}"); }

XPath 中的 @ID='2' 表示匹配属性 ID 值为 "2" 的节点。

3. 常用 XPath 表达式示例

  • /Books/Book[1]:选择第一个 Book 节点(索引从1开始)
  • //Title:选择文档中所有 Title 节点(不管层级)
  • /Books/Book[Title='C# 入门']:选择 Title 为 "C# 入门" 的 Book
  • /Books/Book/@ID:选择所有 Book 节点的 ID 属性节点
  • /Books/Book/Author[text()='李四']:选择 Author 文本内容为“李四”的节点

4. 注意事项

  • 确保XML格式正确,否则 Load 会抛出异常。
  • 使用 SelectSingleNode 找不到节点时返回 null,记得判空。
  • XPath 区分大小写,路径书写要准确。
  • 如果XML有命名空间,需要使用 XmlNamespaceManager 设置前缀,否则查询可能失败。

基本上就这些。XPath配合 XmlDocument 可以高效定位和提取XML数据,适合配置解析或数据读取场景。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

233

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

437

2024.03.01

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1897

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2088

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1043

2024.11.28

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

17

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

91

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

124

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 7.5万人学习

C 教程
C 教程

共75课时 | 4.2万人学习

C++教程
C++教程

共115课时 | 13.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号