gpt4 book ai didi

.net - 检查节点是否存在报错 "Expression must evaluate to a node-set"如何解决?

转载 作者:数据小太阳 更新时间:2023-10-29 01:40:56 25 4
gpt4 key购买 nike

我正在尝试使用以下 .NET 代码检查节点是否存在:

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

这总是引发:

XPathException: Expression must evaluate to a node-set.

为什么会出现此错误,我该如何解决?谢谢。

最佳答案

给定的表达式计算为 bool 值,而不是节点集。我假设您想检查 ProjectName 是否等于参数化文本。在这种情况下你需要写

//ErrorTable/ProjectName[text()='{0}']

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

事后思考:您可以使用原始 xpath 表达式,但不能与 SelectSingleNode 一起使用,而是与 Evaluate 一起使用,如下所示:

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

关于.net - 检查节点是否存在报错 "Expression must evaluate to a node-set"如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com