首页 > 解决方案 > 读取未将 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。

标签: c#xml

解决方案


使用调试器检查“nl”不为空,在将“xndNode”检查到 foreach 之后不为空


推荐阅读