【问题标题】:Read XML with NameSpace Object reference not set to an instance of an object读取未将 NameSpace 对象引用设置为对象实例的 XML
【发布时间】:2019-03-29 01:28:46
【问题描述】:

试图从我的 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


【解决方案1】:

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

【讨论】:

  • nl 和 xndNode 都不为空
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
相关资源
最近更新 更多