为什么代码返回“对象引用未设置到对象的实例”?错误?

发布于 2024-12-04 18:06:00 字数 511 浏览 0 评论 0原文

我尝试使用xmldocument加载XML文件。但是,代码始终返回对象引用未设置为对象的实例”错误。

namespace TestP2
{
class Program
{
    static void Main()
    {
        XmlDocument xd = new XmlDocument();
        xd.Load(@"c:\1\1.xml");

        XmlNodeList nodelist = xd.SelectNodes("E1/E2/E3");
        foreach (XmlNode node in nodelist)
        {
            string test = "";
            test += node.Attributes.GetNamedItem("function").Value;
            Console.WriteLine(test);
        }
    }
}
}

我该如何解决这个问题?

I try to use XmlDocument to load xml file. However, the codes alway return 'Object reference not set to an instance of an object' error.

namespace TestP2
{
class Program
{
    static void Main()
    {
        XmlDocument xd = new XmlDocument();
        xd.Load(@"c:\1\1.xml");

        XmlNodeList nodelist = xd.SelectNodes("E1/E2/E3");
        foreach (XmlNode node in nodelist)
        {
            string test = "";
            test += node.Attributes.GetNamedItem("function").Value;
            Console.WriteLine(test);
        }
    }
}
}

How could I resolve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

路还长,别太狂 2024-12-11 18:06:00

这段代码到处都有漏洞,如果没有任何其他解释,这些都可能是原因。

  1. xd.SelectNodes("E1/E2/E3") 返回值吗?如果它返回 null,则 foreach 语句将引发异常。
  2. node.Attributes.GetNamedItem("function") 在任何情况下都会返回 null 吗?如果是这样,那么当你请求.Value时,它会抛出异常。

This code has vulnerability all over it, and without any other explanation, any of these could be the cause.

  1. Does xd.SelectNodes("E1/E2/E3") return a value? If it returns null, the foreach statement is going to throw the exception.
  2. Is node.Attributes.GetNamedItem("function") returning null in any situation? If so, then when you request .Value, it will throw the exception.
相思碎 2024-12-11 18:06:00

您的“代码”会这样做,因为存在对不存在的东西的对象引用。您可以通过调试并检查哪个对象引用该不存在的对象来解决此问题。

对于 XML,很可能找不到节点或属性。但是,如果没有完整的错误消息和 XML,就不可能为您解决此问题。

Your 'codes' do that because there is an object reference to something that doesnt exists. You can resolve this by debugging, and checking which object refers to this non-existing object.

In the case of XML, its very likely that nodes or attributes couldnt be found. However without the complete error message and XML its impossible to solve this issue for you.

冷血 2024-12-11 18:06:00

我怀疑 .Value 可能为空或未初始化。请检查您的堆栈跟踪并验证。

I am suspecting the .Value might be null or not initialized. Please check your stack trace and verify.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文