哪一個是用於解析非常大的XML文件的最好的XmlDocument或XmlReader中(性能)(大小或它的元素的數量)的XmlDocument VS的XmlReader
回答
的問題不應該是快,但它是很好的爲你的情況。
XmlDocument將整個文檔加載到內存中,並允許您修改它並查詢內容。畢竟您可以將修改的文檔保存迴文件。
XmlReader提供只讀和只轉發訪問XML文檔的內容,當時只有一個元素。
你必須選擇適合你的情況的描述。
您還應該意識到還有另一種方式可以在.NET中處理XML文檔,稱爲LINQ to XML。
因此,如果我想編輯或添加更多元素到一個XML文件,我將不得不加載所有內存? 我可以使用XML來LINQ來編輯XML文件嗎? – Rafael
是的,你可以。我真的會建議你這樣做,因爲它比舊的XmlDocument更容易使用。 – MarcinJuraszek
另一種選擇也許將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。
您可能想要定義「相當大」,因爲讀取整個文件可能不實際。
-1:'DataSet'在所有情況下都不起作用。實際上,它只適用於XML與關係數據模型匹配的情況。 –
在所有情況下都不起作用,特別是對於「XML」數據 - 您沒有很好地定義基本條件。 DateSet肯定會在某些情況下工作。 – rheitzman
'XmlReader'肯定能在所有情況下工作。 –
- 1. 降級的XDocument和XmlReader中來的XmlDocument和XmlReader中
- 2. XPathDocument與XPathNavigator VS Xmlreader?
- 3. 閱讀外部XML - XmlReader,XmlDocument,序列化
- 4. XmlDocument vs XmlWriter
- 5. SslStream上的.NET XmlReader - 從流中讀取多個XML - obtatining XmlDocument
- 6. XMLDocument vs DataSet?它們是一樣的嗎?
- 7. XslCompiledTransform從XmlDocument的到的XmlDocument
- 8. 如何從XmlReader中
- 9. 與PHP的XMLReader
- 10. 的XmlReader和INVALIDCHARACTER
- 11. 的XmlReader環
- 12. 使用的XMLReader
- 13. Android上的XmlReader
- 14. 中的XmlReader
- 15. PHP的Xmlreader movetoelement
- 16. 用的XmlReader
- 17. XmlDocument和ReadNode
- 18. 的XmlDocument readAttribute值,如果本
- 19. 用的XMLDocument VB.NET
- 20. 從XmlDocument的
- 21. 從XmlDocument的
- 22. 在的XMLDocument
- 23. 搜索XmlDocument的
- 24. 使用XmlDocument的
- 25. 的XmlDocument得到子項目
- 26. xmldocument
- 27. 使用xmlReader
- 28. 如何使用Microsoft Fakes存根VS 2013中的XMLDocument
- 29. XmlReader讓xml文件打開?
- 30. 警告:的XMLReader :: XML()
這不是一個好的方法來問。請閱讀[常見問題]和[問] –
因爲他們做不同的工作,所以比較他們的表現沒有意義。 –