You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1与.NET 5.0是否支持XPath 2.0?

根因说明

你遇到的*:前缀写法抛出无效令牌异常的核心原因是:.NET内置的默认XPath查询引擎仅原生支持XPath 1.0语法。
你提到的「支持XPath 2.0数据模型」是类库的数据类型兼容特性,和查询语法支持无关,*:命名空间通配符属于XPath 2.0新增的语法规则,默认的.NET XPath引擎不识别该语法,因此会直接抛出令牌校验异常。

可用方案说明

  1. 目前最通用的原生兼容方案就是你已经验证过的local-name()写法,该函数属于XPath 1.0标准规范,全版本.NET环境都可正常运行:
string Val2 = nav.SelectSingleNode("/*[local-name()='AAA']/*[local-name()='SomeTag']/@Code", nsmgr).Value;

如果觉得每次手写local-name()比较繁琐,可以自行封装辅助方法批量生成忽略命名空间的XPath表达式。
2. 如果必须使用XPath 2.0的*:通配符写法,可以引入第三方XPath引擎类库,这类库完整实现了XPath 2.0及以上版本的所有语法特性,可直接运行你写的通配符格式XPath。

内容的提问来源于stack exchange,提问作者Megrez7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:18:01