2014-01-14 87 views
0

我只是試圖加載一個XML文件,我不知道如何。這裏是我的代碼:VB對象引用未設置爲對象的實例

Dim root As Xml.XmlDocument = Nothing 
root.Load(My.Application.Info.DirectoryPath & "C:\XMLFile1.xml") 

它編譯沒有錯誤,但然後給我通過調試步驟我「對象引用不設置到對象的實例」和它到達第二道防線。該文件存在它應該在的位置。我嘗試了幾乎所有可以在網上找到的上述線條的所有變體(即只用第二行中括號內的路徑等),但仍然遇到同樣的問題。

+1

將會產生DirctoryPath和C:\ XMLFile1.xml在像「C:\ MyDirectoryPath \ C:\ XMLFile1.xml」這樣的東西,這不是你想要的,我想。試試'My.Application.Info.DirectoryPath&「XMLFile1.xml」'。 – Tim

+1

你可以用'Nothing'來做....沒有什麼 – Steve

+0

'Nothing'調用方法'Load'聽起來很有趣。 – helrich

回答

2

仔細查看你在做什麼:

Dim root As Xml.XmlDocument = Nothing 

該行稱,以創建一個名爲root變量,但它設置爲Nothing。也就是說,不要爲其分配任何實際對象的實例。然後:

root.Load() 

你試圖使用對象,你剛剛明確定義爲不是一個對象。

該錯誤與您的XML文件無關,它從來沒有得到那麼多。在調用該對象的成員之前,您需要一個對象的實際實例。我想你要找的東西是這樣的:

Dim root As New XmlDocument 
root.Load(My.Application.Info.DirectoryPath & "C:\XMLFile1.xml") 

這將創建和XmlDocument對象的實例然後調用該對象的Load成員。 (儘管我認爲路徑是錯誤的,但這完全是另一個問題,我無法想象任何路徑信息之前的驅動器號......)

+0

也許你應該改變這個部分:'My.Application.Info.DirectoryPath&「C:\ XMLFile1.xml」';) –

+0

@Bjørn-RogerKringsjå:我完全同意,但將它改爲什麼?我不知道文件的路徑是什麼。我已經指出這條路徑很可能不正確,但是確定正確的路徑取決於OP。 – David

+0

是的,我看到(..)有點晚了,我完全同意。 –

相關問題