簡體   English   中英

在C#中解析大型XML(大小為1GB)的最佳方法是什么?

[英]What is the best way to parse large XML (size of 1GB) in C#?

我有一個1GB的XML文件,想解析它。 如果我使用XML Textreader或XMLDocument,則結果非常緩慢,有時會掛起...

您必須使用xmlreader實現自定義邏輯。 xmlreader不會在使用前將完整的XML加載到內存中,這意味着您可以從流中讀取它並對其進行處理。

XmlDocument在這種情況下不可行,因為它將嘗試將該GB數據吸入主內存。 我驚訝於您發現XmlTextReader太慢。 您是否嘗試過以下方法?

using (XmlTextReader rdr = new XmlTextReader("MyBigFile.txt"))
{
     // use rdr to advance through the document.
}

XMLTextreader不應掛起,因為它是基於流的,只適用於數據塊。

如果掛起,則很可能是您在加載文件時做錯了什么。

我對這個主題不是很熟悉,但是afaik XmlReader類應該可以很好地解決您的特定問題。 畢竟,它們為此進行了優化。

我只想通過我發現的性能比較來備份所有推廣XmlReader的人:

http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html

暫無
暫無

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

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