我需要閱讀大量的潛在(〜300MB)的XML文件,並修改一些節點。基本上我需要:最快/最好的方式來讀取XML
- 從一開始讀取XML
- 每當我找到一個名爲TRGT
- 節點添加一些文字給它
什麼是最好的方式,在C#中處理這個?我應該使用哪些XML類來查找和編輯我需要更改的節點?
TIA
我需要閱讀大量的潛在(〜300MB)的XML文件,並修改一些節點。基本上我需要:最快/最好的方式來讀取XML
什麼是最好的方式,在C#中處理這個?我應該使用哪些XML類來查找和編輯我需要更改的節點?
TIA
VTD-XML是唯一的XML解析lib支持稱爲增量更新的功能。它也是高效的內存和高性能。但它需要你將它作爲第三方庫下載。
從我改造了一些非常大(2GB +)的XML文件(不要問!)我發現XSL轉換是最快的經驗 - 參與此類任務的高度優化的引擎,比較任何手動循環等你可能會嘗試。
你知道我認爲你是對的。雖然XSLT可能會讓一些人感到恐懼。 – ChaosPandion 2011-03-15 20:44:11
公平的評論,雖然大多數轉換都相對簡單,你可以隨時發佈一個關於SO的問題! – 2011-03-15 20:51:47
現在不是一個瘋狂的想法? – ChaosPandion 2011-03-15 20:55:16
如果這是一個相當簡單的操作類似於查找和替換,你可以嘗試把它當作一個普通的文本文件,而不是一個XML文檔。我想這可能比所有的XML解析更快。
可以使用Linq-to-XML
。總之,用XDocument
閱讀,解析並添加數據與Linq
。這不會是最快的代碼,但可能是最快的代碼。
如果你有內存的限制,您可能需要手動解析它(即加載在內存中只是其中的一部分,過程的一部分,取代它在文件中)
令人印象深刻 - 這是我將要看的東西。謝謝! – 2011-03-16 21:31:02
請確保您在答案中聲明這是您自己的產品,以免將其視爲垃圾郵件。 – ArtOfCode 2016-05-16 08:39:49