gpt4 book ai didi

c# - XPath 查询总是仅对 SingleNodeSelect 中的某些查询返回 NULL

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:30 24 4
gpt4 key购买 nike

<?xml version="1.0" encoding="utf-16"?>
<users>
<user number="0772247157">
<step stepnumber="1">complete</step>
<step stepnumber="2">complete</step>
<step stepnumber="3">complete</step>
</user>
<user number="0772247158">
<step stepnumber="1">complete</step>
<step stepnumber="2">complete</step>
</user>
<user number="0772247159">
<step stepnumber="1">complete</step>
</user>
</users>

查询如

//user[@number='0772243950']//user[@number=0772243950]/step[last()] 可以正常工作使用 SelectSingleNode 方法。

但是下面的函数总是返回 null。它与 XPath Visualizer 完美配合,我用在线 XPath 评估器仔细检查过。

public bool checkStepExists(string Number, string StepNumber)
{
string XPathQuery = "//user[@number=" + Number + "]/step[@stepnumber=" + StepNumber + "]";

XmlNode Search = SettingsFile.SelectSingleNode(XPathQuery);

if (Search == null)
return false;
else
return true;
}

在问这个问题之前,我搜索了 SO,所有指向 namespace 问题。但我无法理解的是,这是一个没有命名空间的本地 XML 文件。或者,我应该始终拥有命名空间和前缀并使用它吗?

最佳答案

在您的字符串 XPathQuery 中,我认为您需要引用数字。像这样:

string XPathQuery = "//user[@number=\"" + Number + "\"]/step[@stepnumber=\"" + StepNumber + "\"]";

关于c# - XPath 查询总是仅对 SingleNodeSelect 中的某些查询返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273432/

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