簡體   English   中英

.NET中的速度和XML解析 - 序列化與XML DOM對比?

[英]Speed and XML Parsing in .NET - Serialization vs XML DOM vs?

我之前已經完成了XML解析,但從未進行過大規模的解析。 如果我正在使用與此格式類似的許多文檔:

<?xml version="1.0" ?>
<items comment="something...">
  <uid>6523453</uid>
  <uid>94593453</uid>
</items>

解析這些文檔的最快方法是什么?
1)XML DOM
2)XML Serialize - 重新水化為.NET對象
3)其他一些方法

UPDATE
我忘了提到平均會有大約8000個uid元素。

使用XmlReader絕對是最快的方法,但是當然你必須手動完成所有的解析。 它直接從流中讀取而不緩存任何東西,盡管與DOM相比使用它並不太方便。

比較你建議的兩個:序列化應該比使用DOM更快,因為(我相信)它不會將整個樹緩存在內存中 - 如果你專門用於執行序列化,它當然也有一個更容易使用的界面。

我會說Xml序列化將是兩全其美的。 您可以輕松使用,速度也很快。 xml序列化還有一些額外的開銷...但是如果您手動使用XmlReader,那么當您使用該讀取器重新創建對象圖時,您將至少復制(如果不超過)該開銷。

根據您需要對數據執行的操作,@ Noldorin提到的XmlReader是流式處理的最佳選擇。 如果您需要使用XPath進行更多ad-hoc樣式訪問數據,XPathDocument將比原始XML文檔快得多。

http://msdn.microsoft.com/en-us/library/eh3exdc4.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM