微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 当检查节点的存在时,如何解决错误“表达式必须评估到节点集”?

我正在尝试使用以下.NET代码检查节点的存在:
xmlDocument.SelectSingleNode(
        String.Format("//ErrorTable/ProjectName/text()='{0}'",projectName));

这总是提高:

XPathException: Expression must evaluate to a node-set.

为什么我得到这个错误,我该如何解决?谢谢.

给定的表达式求值为布尔值,而不是节点集.我假设你想检查ProjectName是否等于参数化文本.在这种情况下你需要写
//ErrorTable/ProjectName[text()='{0}']

这给出了与给定条件匹配的所有节点(节点集)的列表.此列表可能为空,在这种情况下,示例中的C#-Expression将返回null.

作为事后:您可以使用原始的xpath表达式,但不能使用SelectSingleNode,而是使用Evaluate,如下所示:

(bool)xmlDocument.CreateNavigator().Evaluate(String.Format("//ErrorTable/ProjectName/text()='{0}'",projectName));

原文地址:https://www.jb51.cc/xml/292795.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。