2011-03-15 75 views
6

我需要閱讀大量的潛在(〜300MB)的XML文件,並修改一些節點。基本上我需要:最快/最好的方式來讀取XML

  • 從一開始讀取XML
  • 每當我找到一個名爲TRGT
  • 節點添加一些文字給它

什麼是最好的方式,在C#中處理這個?我應該使用哪些XML類來查找和編輯我需要更改的節點?

TIA

回答

4

VTD-XML是唯一的XML解析lib支持稱爲增量更新的功能。它也是高效的內存和高性能。但它需要你將它作爲第三方庫下載。

+0

令人印象深刻 - 這是我將要看的東西。謝謝! – 2011-03-16 21:31:02

+0

請確保您在答案中聲明這是您自己的產品,以免將其視爲垃圾郵件。 – ArtOfCode 2016-05-16 08:39:49

3

從我改造了一些非常大(2GB +)的XML文件(不要問!)我發現XSL轉換是最快的經驗 - 參與此類任務的高度優化的引擎,比較任何手動循環等你可能會嘗試。

+0

你知道我認爲你是對的。雖然XSLT可能會讓一些人感到恐懼。 – ChaosPandion 2011-03-15 20:44:11

+2

公平的評論,雖然大多數轉換都相對簡單,你可以隨時發佈一個關於SO的問題! – 2011-03-15 20:51:47

+0

現在不是一個瘋狂的想法? – ChaosPandion 2011-03-15 20:55:16

2

如果這是一個相當簡單的操作類似於查找和替換,你可以嘗試把它當作一個普通的文本文件,而不是一個XML文檔。我想這可能比所有的XML解析更快。

3

可以使用Linq-to-XML。總之,用XDocument閱讀,解析並添加數據與Linq。這不會是最快的代碼,但可能是最快的代碼。

如果你有內存的限制,您可能需要手動解析它(即加載在內存中只是其中的一部分,過程的一部分,取代它在文件中)