2011-09-14 23 views
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); 
     } 
    } 
} 
} 

我該如何解決這個問題?

+0

你可以顯示堆棧的錯誤。 –

回答

1

你的'代碼'是這樣做的,因爲有一個對象引用的東西不存在。您可以通過調試來解決這個問題,並檢查哪個對象引用了這個不存在的對象。

在XML的情況下,很可能找不到節點或屬性。但是,如果沒有完整的錯誤消息和XML,則無法爲您解決此問題。

2

這段代碼有漏洞,沒有任何其他解釋,其中任何一個都可能是原因。

  1. xd.SelectNodes("E1/E2/E3")是否返回一個值?如果它返回null,則foreach語句將拋出異常。
  2. 是否node.Attributes.GetNamedItem("function")在任何情況下返回null?如果是這樣,那麼當你請求.Value時,它會拋出異常。
1

我懷疑.Value可能爲null或未初始化。請檢查您的堆棧跟蹤並驗證。

相關問題