如何解决为什么在将Xpath if-then-else表达式与c#XPathNavigator Evaluate一起使用时得到无效的令牌?
在尝试通过XpathNavigor评估以下表达式时,我得到了无效的令牌异常:
var expression = if(//DovizCins = 'YTL') then '1' else '2';
var nav = doc.CreateNavigator();
XPathExpression xp = XPathExpression.Compile(expression);
var value = nav.Evaluate(xp);
return value?.ToString() ?? string.Empty;
例外是:
System.Xml.XPath.XPathException:``if(// DovizCins ='YTL')然后'1'else'2'具有无效的令牌。'
解决方法
我完全同意迈克尔·凯。
MS官方文档错误:https://docs.microsoft.com/en-us/dotnet/api/system.xml.xpath?view=netframework-4.7.1
摘录
“ ... System.Xml.XPath命名空间包含一些类,这些类定义了一个游标模型,以作为XQuery 1.0和XPath 2.0数据模型的实例来导航和编辑XML信息项。 >
MS SQL Server部分支持XQuery 1.0和XPath 2.0 。 .Net框架不支持任何XQuery,其XPath为1.0
,Microsoft的XML技术已经过时了。这是2007年引入的XPath 2.0语法,Microsoft尚未赶上:他们仍在交付XPath 1.0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。