0

我想加载一个位于 D: 驱动器中的 XML 文件。这是我用的

doc.Load(System.Web.HttpContext.Current.Server.MapPath("/D:/Employee.xml"));

但是每当我尝试运行我的程序时,它都会给我一个错误:

你调用的对象是空的。

我在某处读到 Server.MapPath 只能用于网页或网络应用程序。我使用 c# 在 asp.net 中制作了一个表单。

为什么我会收到此错误?

这是我的代码:

 private void btnRead_Click(object sender, EventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load("D:\\Employee.xml");
        XmlNode root = doc.DocumentElement;
        StringBuilder sb = new StringBuilder();
        XmlNodeList nodeList = root.SelectNodes("Employee");
        foreach (XmlNode node in nodeList)
        {
            sb.Append("Name: ");
            //Select the text from a single node, “Title” in this case
            sb.Append(node.SelectSingleNode("Name").InnerText);
            sb.Append("EmpID: ");
            sb.Append(node.SelectSingleNode("EmpID").InnerText);
            sb.Append("Dept: ");
            sb.Append(node.SelectSingleNode("Dept").InnerText);
            sb.Append("");
        }
        System.Web.HttpContext.Current.Response.Write(sb.ToString());
    }

我在 VS 2008 中制作了一个表格。将详细信息保存在 XML 文件中。现在要显示输出。

4

2 回答 2

3

为什么不直接加载:

doc.Load("D:\\Employee.xml");
于 2012-10-04T11:05:26.303 回答
2

在桌面应用程序中没有这样的 HttpContext.Current,这就是你得到 NullReferenceException 的原因。相反,使用

doc.Load("D:/Employee.xml");
于 2012-10-04T11:05:34.227 回答