C# XmlDocument.SelectSingleNode使用什么版本的XPath?
我使用的C# XmlDocument.SelectSingleNode使用什么版本的XPath?,c#,.net,xml,xpath,C#,.net,Xml,Xpath,我使用的XmlDocument类如下: divisionsDoc.SelectSingleNode( string.Format(@"Root/PoliticalDivisions/PoliticalDivision[upper-case(@Code)='{0}']", withCode.ToUpper())); 这导致了错误: 需要命名空间管理器或XsltContext。此查询具有前缀, 变量,或用户定义的函数 我推测这是由于大写的XPath函数造成的,据我所知,XPath函数存在于
XmlDocument
类如下:
divisionsDoc.SelectSingleNode(
string.Format(@"Root/PoliticalDivisions/PoliticalDivision[upper-case(@Code)='{0}']", withCode.ToUpper()));
这导致了错误:
需要命名空间管理器或XsltContext。此查询具有前缀,
变量,或用户定义的函数
我推测这是由于大写的XPath函数造成的,据我所知,XPath函数存在于XPath 2.0中,而不是1.0(from等)
没有指定它使用的XPath版本。我的目标是.NET4.5.1——使用XPath2.0还不够晚吗?或者这是其他地方(在.NET之外)定义的东西
我怎样才能知道XPath的目标版本是什么?
请注意,我知道使用translate('some text'、'abcdefghijklmnopqrstuvwxyz'、'abcdefghijklmnopqrstuvwxyz')所做的工作。
——这不是我要问的。微软从未实现过XPath 2.0或Xslt 2.0。。。例如,请参见2013年的这篇文章(在.NET中恰当地命名为对XPath 2.0或XSLT 2.0的本机支持)
一位用户于2015年3月发表的最后评论:
我想我们永远也看不到这一点,因为世界不再喜欢XML了,它都是关于JSON的。这是一个遗憾,因为XML在许多关键场景中仍然比JSON好得多
另外,您需要在这里使用XPath吗?我个人只想使用LINQ to XML-例如,不必担心with code
是否包含撇号-但我很感激您可能有其他要求。不。。。微软从未实现过XPath2.0或XSLT2.0。参见2011年的例子。在一条评论中,有人要求在2014年进行更新……这令人难以置信地沮丧,2018年XPath 1.0仍然是.NETYeah中唯一受支持的版本。如果你现在尝试这个链接,你会发现他们已经完全降低了用户的声音。没有“用户声音”。