c# - 读取未将 NameSpace 对象引用设置为对象实例的 XML
问题描述
试图从我的 XML 文件中获取 orderCount 和 completedCount:
<?xml version="1.0" encoding="utf-8"?>
<MENU xmlns="http://test.xsd">
<STATUS>
<ORDER_COUNT>22</ORDER_COUNT>
<COMPLETED_COUNT>0</COMPLETED_COUNT>
</STATUS>
<ITEM>
<ITEM1>BURGER</ITEM1>
</ITEM>
</MENU>
使用我的 C# 代码:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlerrorFile);
XmlNamespaceManager xmlNS = new XmlNamespaceManager(xmlDoc.NameTable);
xmlNS.AddNamespace("ns", @"http://test.xsd");
XmlNodeList nl = xmlDoc.SelectNodes("ns:MENU/ns:STATUS", xmlNS);
foreach (XmlNode xndNode in nl)
{
string orderCount = xndNode.SelectSingleNode("ORDER_COUNT").InnerText;
string completedCount = xndNode.SelectSingleNode("COMPLETED_COUNT").InnerText;
if (orderCount != "0")
{
label1.Text = "Error";
}
else
{
label1.Text = "Good";
}
}
我收到错误消息“对象引用未设置为对象的实例”。
对于 orderCount 和 completedCount。
解决方案
使用调试器检查“nl”不为空,在将“xndNode”检查到 foreach 之后不为空
推荐阅读
- prettier - Prettier/VSCode 打破了语法
- ios - 根据 ui 堆栈视图内容自行调整表视图单元大小
- firebase - Firebase 函数不会在不同的类上初始化管理员
- javascript - 如何防止下载管理器从
- python - 如何将整个浮点数转换为整数?
- github - 防止非空命名空间删除
- spring - Spring Cloud Kubernetes 未加载具有 xx.yy 等模式的密钥
- java - 如何将 AdMob 添加到 AndroidStudio 4.2.2?
- r - 为什么 guides() 中的 size 没有 override.aes?
- react-native - 如何使用嵌套的 flatlist 或 sectionlist?