[英]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.