为什么这会引发一个null引用异常

本文关键字:一个 null 引用 异常 为什么 | 更新日期: 2023-09-27 17:59:00

有人能告诉我为什么这会引发null引用异常(对象引用没有设置为对象的实例)吗。我的代码读取一个简单的xml文件,然后将2个元素中的文本传递给另一个方法。然而,在foreach循环的第一行抛出异常:

请原谅我的无知,我是新来的

private void openProjectToolStripMenuItem_Click(object sender, EventArgs e)
{
    //I have to pass 'this' (which is Form1) when creating the Projects (Form2) in order for them to understand / see each other      
    Projects myProjects = new Projects(this); 
    //displays the Form 2 (called Projects)
    myProjects.Show(); 
    XmlDocument xdoc = new XmlDocument();
    xdoc.Load("O:''TestDaws''projects.xml");
    string projList = "/Projects/Project";
    XmlNodeList xprojects = xdoc.SelectNodes(projList);
    foreach (XmlNode xNodeName in xprojects)
    {
        string projectname = xNodeName.SelectNodes("/ProjectName")[0].InnerText.ToString();
        string projecttype = xNodeName.SelectNodes("/ProjectType")[0].InnerText.ToString();
        myProjects.buildProjectList(projectname, projecttype);
    }
}

为什么这会引发一个null引用异常

SelectNodes("/ProjectName")更改为SelectNodes("./ProjectName")。(当然/ProjectType也是如此)

/ProjectName将始终从根节点进行选择,而不是从调用它的节点进行选择。./从当前节点开始。

这意味着xprojectsnull
请您发布您的projects.xml文件内容。

此致,
Omar