c# - 如果节点存在,则检查xml c#
问题描述
我发送了一些请求,有时我得到了 xml 响应
<?xml version="1.0" encoding="UTF-8"?>
<debt-response>
<status>0</status>
<name>ნ.ს.</name>
<schedules>
<schedule>07.07.2017 1171.8000 GEL 1</schedule>
<schedule>07.08.2017 1171.8000 GEL 1</schedule>
<schedule>07.09.2017 1171.8000 GEL 1</schedule>
</schedules>
</debt-response>
有时我得到
<?xml version="1.0" encoding="UTF-8"?>
<debt-response>
<status>0</status>
<name>ნ.ბ.</name>
<schedules>
<schedule>06.07.2018 1.5 GEL 1</schedule>
<debt>15.06.2018 0.97</debt>
</schedules>
</debt-response>
我正在使用 var acc_numArray = xmlDoc.SelectNodes("/debt-response/schedules/debt"); 但如果不存在这样的元素,它就会出现异常。如果这样的节点存在任何解决方案,我想得到那笔债务?
解决方案
在没有看到您的代码的情况下,我只能猜测您在做什么 - 但有一点是肯定的,如果指定的 XPath 无法找到任何节点,则此行不会引发异常:
var acc_numArray = xmlDoc.SelectNodes("/debt-response/schedules/debt");
相反,它将返回XmlNodeList
acount
为零。
我假设当您尝试访问节点列表时发生异常,就好像它有项目一样 - 但只需检查计数并仅在它非零时访问它:
var acc_numArray = xmlDocument.SelectNodes("/debt-response/schedules/debt");
if (acc_numArray.Count > 0)
{
// Do stuff here
}
如果您将实际代码的示例放入问题中,那么对您的帮助会容易得多。