我有以下問題:我有非常大的XML文件(如300 +兆),我需要對其進行解析,以他們的一些價值添加到數據庫。這些文件的結構也非常複雜。我想用斯塔克斯解析器,因爲它提供的拉解析(因而處理)只有XML文件的部分好的可能性的時間,因而不加載在內存中的整個事情,但另一方面與得到的值Stax(至少在這些XML文件上)很麻煩,我需要編寫大量的代碼。但從後面這一點,將immensly幫助我,如果我能馬歇爾XML文件的Java對象(如JAX-B做),但是這會一下子加載整個文件加上一噸的對象實例在內存中。解析非常大的XML文件,並編組爲Java對象
我的問題是,是否有某種方法可以順序地解析(或部分解析)文件,然後只將那些部分編組爲Java對象,這樣我就可以輕鬆處理它們而不會在內存中陷入困境?
很高興知道您的問題已解決。只是想知道這是如何(在這篇文章中的soln)不同於我發佈的內容? – Kashyap
那麼,誠實地說,它是大型框架的一部分恐懼,部分懶惰:)(這兩者都很糟糕和令人遺憾)。首先,從文檔看,EMF看起來像一個相當複雜的框架,它不僅適用於XML處理,還適用於其他許多事情,而且我總是儘可能地避免這種沉重的框架(這只是個人偏好,我不是說一般做不好)。其次,我很懶,而且EMF使用了我不知道的非標準XML解析API,因此我用標準的Java XML API來提供解決方案。 –
事實上,無論您是否喜歡EMF,我都建議不要使用它(「**因爲EMF對於這麼小的問題**太大了,除非你沒有選擇。」)。解析器再次引用「so **只是使用任何你想要的**解析,在循環中爲每個創建一些StringStream或者**,並傳遞給JAX-B或EMF。**」 –
Kashyap