我想加载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文件中。现在想要显示输出。
答案 0 :(得分:3)
为什么不直接加载:
doc.Load("D:\\Employee.xml");
答案 1 :(得分:2)
在桌面应用程序中没有这样的HttpContext.Current,这就是你得到NullReferenceException的原因。相反,使用
doc.Load("D:/Employee.xml");