2012-10-04 56 views
0

我想加載D:驅動器中的XML文件。這是我用使用Server.MapPath加載外部文件

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

但它給我一個錯誤,每當我嘗試運行我的程序:不設置到對象的實例

對象引用。

我在某處看到Server.MapPath只能用於網頁或web應用。我使用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()); 
    } 

我曾在2008年VS保存在一個XML文件中的詳細信息的表格。現在想要顯示輸出。

+0

您使用ASP.NET嗎? –

+0

是的。 Asp.net使用C# – Esha

+0

哪個代碼行引發異常? –

回答

3

爲什麼不能直接加載:

doc.Load("D:\\Employee.xml"); 
+0

這工作完美。謝謝。但我正在使用:'System.Web.HttpContext.Current.Response.Write(sb.ToString());'方法來顯示它。現在顯示錯誤! :/ – Esha

+1

@syrion:似乎你在不同的線程中使用HttpContext.Current? –

+0

其實我在2008年做了一個表單。所以我很困惑如何加載和顯示輸出。我只會編輯我的問題並編寫完整的代碼。 – Esha

2

在一個桌面應用程序沒有這樣HttpContext.Current,這就是爲什麼你得到了NullReferenceException異常。相反,使用

doc.Load("D:/Employee.xml");