2011-09-23 120 views
10

如何驗證大型XML文件(> 100MB)?我試圖用IE瀏覽器打開它,FX & GC,它會崩潰或者什麼都不做。如何驗證大型XML(> 100MB)文件

+0

可能重複http://stackoverflow.com/questions/159521/text-editor-to-open-big-巨大巨大的文本文件) – Jehof

+1

@Jehof Nope,根本沒有。文本編輯器與驗證器不同。 – phihag

+0

@愛好公平,OP * did *談論在IE和Firefox中打開文件,所以目前還不清楚OP是否意味着可視化手動驗證或編程驗證。 –

回答

8

您可以嘗試使用命令行驗證,例如xmlstarlet

$ xmlstarlet validate bigfile.xml 
+0

它可能工作,但該項目似乎已經死了,所以不要期望更新。請參閱http://xmlstar.sourceforge.net/ –

+0

+1由於這是唯一不需要Windows的程序。而且它是免費的:) –

+0

'sel'然而不起作用:-(http://stackoverflow.com/questions/33653844/xmlstarlet-sel-on-large-file –

0

在Java中,和我在其他語言敢肯定,也有解決方案,用於讀取整個XML文件,並進行處理作爲一個完整的DOM,以及以事件驅動的方式將XML作爲流處理的解決方案。你會想要第二種解決方案,它永遠不會將整個文件加載到內存中。有關此問題的Java解決方案,請參閱SAX

0

您可以嘗試EditiX XML編輯器。

如果您將文檔加載到EditiX中,並且XML存在問題,例如。不匹配的開啓和關閉標籤,編輯器仍然會加載文件,並且在屏幕的右下角會顯示一個以紅色顯示的數字,例如。紅色的「5」表示文檔中有五個錯誤。

我沒有嘗試過100MB的文件,但我已經完成了超過15MB,它似乎很高興。

有一個免費版本。

0

除了dj_segfault對phihag的回答發表評論,xmlstarlet幸虧沒死。 他們只是released Version 1.3

如果你想要一個體面的命令行工具,可以操縱xml,xmlstarlet是完美的(和很快)。

+1

恕我直言,\t ***這應該是一個評論*** – Kiquenet

5

我知道的將大型文件查看器和XML驗證程序組合成大文件的唯一工具是XML ValidatorBuddy。文件查看器不會立即加載完整文件,但可以滾動,並且還會應用XML語法着色。驗證使用來自Xerces的SAX解析器,您的文檔大於100mb不應該成爲問題。

0
XML的小明星的

Windows版本:

> xml val <xmlfile.xml> 
0

您還可以使用XML工具插件在Nodepad ++,它有一個函數「現在檢查XML語法」。這很容易下載,如果你已經不使用Notepad ++,這是一個很好的理由開始!

4

xmllint --stream工作與內存1.2GB文件限制爲500MB:

ulimit -Sv 500000 
xmllint --stream a.xml 

沒有--stream,Linux的終止進程,並沒有ulimit,我的電腦卡紙。 How to do command line XPath queries in huge XML files?

測試在Ubuntu 14.04,xmllint版本20901:

我使用--stream時無法但是從--xpath獲取輸出。

+1

'xmllint'是跨平臺的,我在Windows上使用它,我確認'--stream'選項也可以在那裏工作,我甚至不需要設置一個內存限制來處理3.5GB,但是.net庫似乎快了2倍 – Jarekczek

+1

@Jarekczek謝謝你讓我知道!你不需要'ulimit'在Linux中使用'--stream',我只是向人們展示如何不使用它們的機器/測試它實際上沒有使用多少內存;-) –

-1

在Windows上,您可以編寫基於.net平臺的簡單應用程序。 System.Xml.XmlReader類能夠驗證大文件。一個例子就是在這個答案中:Validating an XML against referenced XSD in C#

+0

上下文中,使用「在.NET中編寫自己的xml驗證程序」答案時沒有多大意義已經有針對所有操作系統的程序來執行此操作。 – pydsigner

+0

打包第三方應用程序與您的程序是麻煩的。使用內置的操作系統庫,我的建議更容易。由於stackoverflow是程序員,我希望這樣的建議總是會出現。 -1不擔心我,但請不要讓這個答案不可見。 – Jarekczek

+0

如果您的第一個想法是在Web瀏覽器中驗證XML,就像OP一樣,您幾乎肯定不會試圖通過程序發佈解決方案。你的回答並不適用於這種情況。 – pydsigner

0

Liquid Studio Community Edition包含一個大文件編輯器,它也可以用來驗證XML文件。它沒有真正的文件大小的上限,你可以打開Terra字節文件立即在低規格機器上打開,它的免費。

Liquid Studio Large File Editor

[文本編輯器打開大(巨,巨大的,大的)文本文件(的