我正在尝试使用以下.NET代码检查是否存在节点:
xmlDocument.SelectSingleNode(
格式(“//ErrorTable/ProjectName/text()='{0}',ProjectName));
这总是引起:
XPathException:表达式的计算结果必须为节点集
为什么会出现此错误,如何解决?多谢各位
给定的表达式的计算结果为布尔值,而不是节点集。我假设您想检查ProjectName是否等于参数化文本。在这种情况下,您需要编写
//ErrorTable/ProjectName[text()='{0}']
这将为您提供与给定条件匹配的所有节点(节点集)的列表。此列表可能为空,在这种情况下,示例中的C#-表达式将返回null
事后考虑:您可以使用原始xpath表达式,但不能使用SelectSingleNode,而是使用Evaluate,如下所示:
(bool)xmlDocument.CreateNavigator().Evaluate(String.Format(“//ErrorTable/ProjectName/text()=”{0}',ProjectName));