मैं है निम्नलिखित समस्या:पार्सिंग जावा
मैं एक XML फ़ाइल (लगभग 1 जीबी) मिल गया है, और ऊपर पुनरावृति करने के लिए है और नीचे (यानी अनुक्रमिक नहीं; एक के बाद एक) के क्रम में आवश्यक डेटा प्राप्त करने और उस पर कुछ संचालन करने के लिए। प्रारंभ में, मैंने डोम जावा पैकेज का उपयोग किया, लेकिन जाहिर है, एक्सएमएल फाइल के माध्यम से पार्स करते समय, जेवीएम अपनी अधिकतम ढेर स्पेस तक पहुंचता है और रुक जाता है।
इस समस्या को दूर करने के लिए, मैं जिन समाधानों के साथ आया था, उन्हें एक और पार्सर ढूंढना था जो एक्सएमएल में प्रत्येक तत्व को पुन: सक्रिय करता है और फिर मैं अपनी हार्ड डिस्क पर अस्थायी SQLite डेटाबेस में इसकी सामग्री संग्रहीत करता हूं। इसलिए, इस तरह, JVM का ढेर पार नहीं हुआ है, और एक बार सभी डेटा भरने के बाद, मैं XML फ़ाइल को अनदेखा करता हूं और अस्थायी SQLite डेटाबेस पर अपने परिचालन जारी रखता हूं।
क्या कोई और तरीका है कि मैं अपनी समस्या से कैसे निपट सकता हूं?
xml – Biswajit
पार्स करने के लिए जैक्सबी का उपयोग करें जैसा कि अन्य ने कहा है कि आपको एक डोम पार्सर के बजाय एक SAX पार्सर का उपयोग करने की आवश्यकता है, यह वही करेगा जो आपको चाहिए। इसे पढ़ें: http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom – cowls
यदि आप पूरे डोम पेड़ को नहीं पकड़ सकते हैं, तो आपको अनुक्रमिक रूप से अपनी प्रसंस्करण करने का एक तरीका ढूंढना होगा। क्या यह संभव है? क्या आप एक एक्सएसएलटी दिखा सकते हैं जो आपको चाहिए? –