C#如何用XPath选中特定属性值的节点


在C#中用XPath选中特定属性值节点需用@属性名='值'语法,XmlDocument适用于.NET Framework,XDocument(需引用System.Xml.XPath)推荐用于.NET Core/5+,注意命名空间、大小写敏感、引号转义及特殊字符处理。

c#如何用xpath选中特定属性值的节点

在C#中使用XPath选中特定属性值的节点,核心是通过@属性名='值'语法构造XPath表达式,并配合XmlDocumentXDocument执行查询。

使用XmlDocument + SelectNodes/SelectSingleNode

适用于传统.NET Framework项目或需要兼容老代码的场景。注意XML命名空间、大小写敏感性和引号转义问题。

  • 加载XML后调用SelectNodes()(返回节点集合)或SelectSingleNode()(返回首个匹配节点)
  • 属性匹配写法:例如"//book[@category='fiction']"选中所有<book></book>category属性值为fiction的节点
  • 若属性值含单引号,改用双引号包裹XPath;含双引号则用单引号包裹,或使用concat()函数拼接
  • 示例:doc.SelectNodes("//user[@id='1024' and @active='true']")可同时匹配多个属性条件

使用XDocument + XPathSelectElements/XPathSelectElement

推荐用于.NET Core/.NET 5+项目,需引用System.Xml.XPath.XDocument扩展包(.NET Standard 2.0+已内置)。

TextIn Tools TextIn Tools

是一款免费在线OCR工具,包含文字识别、表格识别,PDF转文件,文件转PDF、其他格式转换,识别率高,体验好,免费。

TextIn Tools 164 查看详情 TextIn Tools
  • 调用XDocument.XPathSelectElements(string xpath)获取IEnumerable<xelement></xelement>
  • 支持更现代的XPath 1.0语法,写法与XmlDocument基本一致,如"//product[@inStock='yes']"
  • 对命名空间敏感——若XML有默认命名空间,必须注册XNamespace并参与查询,否则查不到节点
  • 示例:var ns = XNamespace.Get("http://example.com/ns"); doc.XPathSelectElements($"//{ns}item[@type='book']")

处理常见陷阱

实际使用中容易因细节出错,重点关注以下几点:

  • 属性名和值严格区分大小写:XPath中@Class@class,XML源中怎么写就怎么查
  • 空格和前后缀不影响匹配:但属性值本身含空格时需完整写出,如@role=' admin '只能匹配值两端带空格的节点
  • 特殊字符需转义:属性值含&等,应在原始XML中已实体化(如<code>&amp;),XPath中直接写"@desc='C&C++'"
  • 通配符可用但谨慎:如"//node[@id[starts-with(.,'U_')]]"匹配id以U_开头的节点,避免过度使用//影响性能

完整小例子(XDocument方式)

假设XML字符串为<root><item id="A001" type="widget">OK</item><item id="B002" type="gadget">NG</item></root>

var doc = XDocument.Parse(xml);
var target = doc.XPathSelectElement("//item[@type='widget']");
if (target != null) Console.WriteLine(target.Value); // 输出 "OK"

以上就是C#如何用XPath选中特定属性值的节点的详细内容,更多请关注其它相关文章!


# 双引号  # 贵溪关键词万词霸屏排名  # seo低咖啡因  # 有人在用营销推广软件吗  # seo查询SEO优化  # 宁波网站建设与规划  # 玩偶营销推广策略怎么写  # 丽水营销推广公司排名前十  # 外贸营销推广公司海北  # 黑猫seo教程视频  # 2017网站seo原则  # 相关文章  # 多个  # node  # 单引号  # 特殊字符  # 如何判断  # 适用于  # 如何用  # 为空  # 如何选择  # .net  # c#  # c++  # go 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 解决异步Python机器人中同步操作的阻塞问题  视频号视频怎么提取文案?提取的文案如何优化与使用?  POKI小游戏在线免费入口链接 POKI小游戏无下载秒玩玩  铁路12306官网登录入口 铁路12306在线购票官方平台  VS Code中的Tailwind CSS IntelliSense插件使用技巧  search中maxlength属性用法解析  毒蘑菇VOLUMESHADER_BM官网首页登录入口 毒蘑菇VOLUMESHADER_BM官网首页登录入口说明  KFC邀请码怎么使用领额外优惠_KFC邀请码输入方式与额外优惠代码获取方法  如何高效地基于键列值映射DataFrame中的多个列  Flask 应用中图片动态更新与上传:实现客户端定时刷新与服务器端文件管理  Selenium自动化:利用键盘模拟解决复杂日期输入框输入问题  WPS文字如何进行简繁转换  《豆瓣》私信用户方法  Python中安全地将环境变量转换为整数的类型注解指南  电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】  阿里云共享相册入口在哪  解决CSS background 属性中 cover 关键字的常见误用  优酷官网登录入口电脑版 优酷官网网址入口  win11怎么设置默认终端为Windows Terminal Win11替代CMD和PowerShell【技巧】  使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留  百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法  QQ网页版官方账号登录入口 QQ网页版网页版入口快速导航  百度网盘网页入口链接分享 百度网盘官网入口网页登录  动漫岛汉化官网网 动漫岛官方动漫汉化地址  PHP utf8_encode 字符编码转换疑难解析与最佳实践  《tt语音》超级玩家开通方法  宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?  Lar*el Socialite单设备登录策略:实现用户唯一会话管理  Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】  德邦快递会员怎么开通  苹果手机怎么合并照片_苹果手机合并多张照片的操作方法  tiktok国际版入口_tiktok官网网页版链接  《合金装备4》有望推出重制版!制作人发话了  MySQL多重关联查询:利用别名高效获取同一表的多个关联字段  Excel如何制作月度销售统计图_Excel动态图表制作与控件应用  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  Linux如何开发轻量级数据服务模块_Linux服务化设计  苹果SE如何开启单手模式_苹果SE单手操作功能  小红书网页版首页入口 小红书网页版电脑端官方登录链接  发博客与长微博技巧  智学网app怎么登录忘记密码_智学网app忘记密码找回与重新登录操作方法  微信客户端如何找回密码_微信客户端忘记密码找回方法  京东快递物流信息不更新怎么办_物流停滞原因与处理方法  手机远程连接电脑方法  发布小红书怎么屏蔽粉丝?屏蔽粉丝能看到吗?  手机耗电快是什么原因 延长手机电池续航时间的设置方法【详解】  《edge浏览器》关闭翻译功能方法  稻壳阅读器官方直达网址链接 稻壳阅读器文档阅读平台主页资源入口  OpenWeatherMap API:通过城市名称获取天气预报数据指南  泰拉瑞亚水晶无法放置问题 

 2025-12-20

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.