新闻中心
C#如何使用XPath从XML中筛选数据_C#使用XPath筛选XML数据教程
使用XmlDocument和XPath可高效筛选XML数据,如SelectNodes("//Book")提取所有书籍节点,结合XmlNamespaceManager处理命名空间,或通过XDocument配合XPath扩展方法查询带条件的元素。

在C#中使用XPath筛选XML数据是一种高效且灵活的方法,尤其适用于需要从结构化XML文档中提取特定节点或属性的场景。通过System.Xml命名空间中的类,如XDocument、XmlDocument和XmlNode,你可以结合XPath表达式快速定位所需数据。
加载XML并使用XPath查询
要使用XPath,首先需要加载XML文档。推荐使用XmlDocument类,因为它原生支持XPath查询。
以下是一个基本示例:
using System;
using System.Xml;
class Program
{
static void Main()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"
<Books>
<Book id='1'>
<Title>C#入门经典</Title>
<Author>张三</Author>
<Price>89.00</Price>
</Book>
<Book id='2'>
<Title>深入理解C#</Title>
<Author>李四</Author>
<Price>75.50</Price>
</Book>
</
Books>");
// 使用XPath选择所有Book节点
XmlNodeList books = doc.SelectNodes("//Book");
foreach (XmlNode book in books)
{
string title = book["Title"]?.InnerText;
string author = book["Author"]?.InnerText;
string price = book["Price"]?.InnerText;
Console.WriteLine($"书名:{title},作者:{author},价格:{price}");
}
}
}
常用XPath表达式语法
XPath提供强大的路径匹配能力,以下是在C#中常用的表达式:
- //Book:选择所有名为Book的节点,无论层级
- /Books/Book:选择根节点下Books中的直接子节点Book
- //Book[@id='1']:选择id属性为1的Book节点
- //Book[Price > 80]:选择价格大于80的书籍(支持简单逻辑判断)
- //Book[1]:选择第一个Book节点(索引从1开始)
- //Book/Title/text():获取所有Title元素的文本内容
通过命名空间处理带前缀的XML
如果XML包含命名空间,必须在查询时注册XmlNamespaceManager,否则XPath无法正确匹配。
示例:
VALL-E
VALL-E是一种用于文本到语音生成 (TTS) 的语言建模方法
134
查看详情
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"
<root xmlns:bk='http://example.com/books'>
<bk:Book>
<bk:Title>ASP.NET教程</bk:Title>
</bk:Book>
</root>");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "http://example.com/books");
XmlNode node = doc.SelectSingleNode("//bk:Title", nsmgr);
Console.WriteLine(node?.InnerText); // 输出:ASP.NET教程
使用XDocument与XPath的结合(需引用System.Xml.XPath)
XDocument更现代,但需要引入System.Xml.XPath扩展方法才能使用XPath。
确保添加引用:
using System.Xml.Linq; using System.Xml.XPath;
示例代码:
XDocument xDoc = XDocument.Parse(@"
<Books>
<Book category='programming'>
<Title>C#高级编程</Title>
</Book>
</Books>");
var query = xDoc.XPathSelectElements("//Book[@category='programming']");
foreach (var book in query)
{
Console.WriteLine(book.Element("Title")?.Value);
}
基本上就这些。掌握XPath语法和C#中的查询方式后,就能高效地从复杂XML中提取所需信息。注意路径写法、命名空间处理和数据类型转换,避免空引用异常。不复杂但容易忽略细节。
以上就是C#如何使用XPath从XML中筛选数据_C#使用XPath筛选XML数据教程的详细内容,更多请关注其它相关文章!
# 是在
# 荷塘区网站营销推广
# 长宁网站建设开发
# 抖音seo 算法
# 做微店推广的网站哪个好
# 广西婚庆网站建设方案
# 甘肃seo服务公司排名
# 德阳市整合营销推广
# ai++seo优化
# seo优化营销方式
# seo设置怎么写
# 第一个
# 你可以
# c#
# 文档
# 加载
# 是一个
# 不带
# 所需
# 是一种
# 如何使用
# .net
# ai
# go
# node
# xpath
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Go语言中JSON数据解析与字段访问教程
初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解
Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置
Lar*el 递归关系中排除指定分支的教程
Yandex浏览器官方网页版入口 Yandex浏览器最新版官网
如何提高微信支付的安全性_微信支付安全防护与设置建议
DLsite中文平台入口 DLsite官网内容在线查看
Mac终端命令大全_Mac常用Terminal指令速查
漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口
Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略
谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航
sublime怎么格式化代码_sublime代码美化与一键排版插件配置
小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】
Excel文件在线转换快速入口 Excel在线格式转换网站
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
顺丰快递查询系统 官方正版查询入口
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
大象笔记网页版入口 印象笔记网页版登录入口
Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
ACG动漫视频网入口 ACG动漫*免费正版观看地址
Python实时数据流中的动态最值查找策略
将JSON对象数组转置为键值对列表的实用指南
免费抖音短视频入口_抖音网页版短视频免费通道
qq游戏网页版直接玩_qq游戏免下载快速入口
Sublime Text怎么设置垂直标尺_Sublime配置Rulers规范代码长度
J*aScript 字符串标签转换:使用正则表达式高效替换
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
微信网页版登录教程_微信网页版登录入口在哪
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
Bing引擎入口最新2025 Bing搜索免费官方登录
深入理解J*a编译器的兼容性选项:从-source到--release
菜鸟取件码是什么怎么查 最全查询渠道汇总
Mac怎么查看崩溃日志_Mac控制台错误报告分析
J*aScript中localStorage数据的获取、清洗与格式化教程
优酷会员付费后没到账怎么办_优酷会员充值异常及解决方法
58动漫网在线官方网 58动漫网正版动漫入口网址
163邮箱官方主页登录 直达网易邮箱登录核心页面
c++如何实现单例设计模式_c++线程安全的单例模式写法
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
服务端验证_j*ascript输入检查
J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析
J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程


2025-11-04
浏览次数:次
返回列表
Books>");
// 使用XPath选择所有Book节点
XmlNodeList books = doc.SelectNodes("//Book");
foreach (XmlNode book in books)
{
string title = book["Title"]?.InnerText;
string author = book["Author"]?.InnerText;
string price = book["Price"]?.InnerText;
Console.WriteLine($"书名:{title},作者:{author},价格:{price}");
}
}
}