2013-10-21 53 views
0

哪一個是用於解析非常大的XML文件的最好的XmlDocument或XmlReader中(性能)(大小或它的元素的數量)的XmlDocument VS的XmlReader

+0

這不是一個好的方法來問。請閱讀[常見問題]和[問] –

+0

因爲他們做不同的工作,所以比較他們的表現沒有意義。 –

回答

2

的問題不應該是快,但它是很好的爲你的情況。

XmlDocument將整個文檔加載到內存中,並允許您修改它並查詢內容。畢竟您可以將修改的文檔保存迴文件。

XmlReader提供只讀和只轉發訪問XML文檔的內容,當時只有一個元素。

你必須選擇適合你的情況的描述。

您還應該意識到還有另一種方式可以在.NET中處理XML文檔,稱爲LINQ to XML。

+0

因此,如果我想編輯或添加更多元素到一個XML文件,我將不得不加載所有內存? 我可以使用XML來LINQ來編輯XML文件嗎? – Rafael

+0

是的,你可以。我真的會建議你這樣做,因爲它比舊的XmlDocument更容易使用。 – MarcinJuraszek

-1

另一種選擇也許將XML加載到數據集:

Public Function GetXMLDataset() As DataSet 
    Try 
     Dim ds As New DataSet 
     Dim xd As New XmlDocument 
     xd.LoadXml(txtXML.Text) 
     ds.ReadXml(New XmlNodeReader(xd), XmlReadMode.InferSchema) 
     Return ds 
    Catch ex As Exception 
     MsgBox(ex.Message) 
     Return Nothing 
    End Try 
End Function 

在這個片段中的XML已經被讀取到一個文本框,但你可以開發其他方式獲得的XML。

您可能想要定義「相當大」,因爲讀取整個文件可能不實際。

+0

-1:'DataSet'在所有情況下都不起作用。實際上,它只適用於XML與關係數據模型匹配的情況。 –

+0

在所有情況下都不起作用,特別是對於「XML」數據 - 您沒有很好地定義基本條件。 DateSet肯定會在某些情況下工作。 – rheitzman

+0

'XmlReader'肯定能在所有情況下工作。 –