c# - .Net Core 3.1 和 .Net 5.0 是否支持 XPath 2.0?
问题描述
我正在尝试没有命名空间的 XPathNavigator.SelectSingleNode。
带有命名空间的初始版本
string Val1 = nav.SelectSingleNode("/nn:AAA/nn:SomeTag/@Code", nsmgr).Value;
工作正常。
我正在尝试摆脱命名空间的选项:
string Val2 = nav.SelectSingleNode("/*[local-name()='AAA']/*[local-name()='SomeTag']/@Code", nsmgr).Value;
string Val3 = nav.SelectSingleNode("/*:AAA/*:SomeTag/@Code", nsmg).Value;
string Val4 = nav.SelectSingleNode("/*:AAA/*:SomeTag/@Code").Value;
Val2
像使用 XPath 1.0 函数一样工作。但是两者都Val3
抛出Val4
异常“无效令牌”。
应接受通配符,因为文档https://docs.microsoft.com/en-us/dotnet/api/system.xml.xpath?view=netcore-3.1表示它支持 XPath 2.0 数据模型。
同样说问题的答案是否可以在使用 xPath 时忽略 c# 中的命名空间?
解决方案
它们可能支持 XPath 2.0 数据模型,但我很确定它们不支持 XPath 2.0 语法或 XPath 2.0 函数库。
有关于 XPath 2.0 支持 .NET 在XPath 和 XSLT 2.0 支持 .NET 的信息吗?
不幸的是,当前用于 .NET 的 Saxon 产品不适用于 .NET 5.0。我们希望有一种新产品能在几周内填补这一空白。
推荐阅读
- python - 通过自我而不是方法参数的类的Pytest夹具
- reactjs - 从 webpack 输出中删除绝对路径
- c# - Linux 上的 ASP.NET Core
- ios - 在 swift 4 和 Xcode 9 中为 ExpandableTableView 解码嵌套的 json 数组
- oauth-2.0 - 当 OAuth Server 与 Resource Server 分离时,如何处理 OAuth Server 中的用户注册?
- java - 实现双向连接的组合框
- java - 无法解析到窗口生成器中的设计视图
- ios - 在 Ios 中反应原生 Google 登录问题
- api - Prtg api过滤具有特定标签的所有设备
- android - 使用 Gson 和数据中的 JSONObject 从服务器解析数据