2011-03-20 20 views
7

के अंदर एक एक्सएमएल पार्स करना मेरे पास एक ज़िप है जिसमें दो फाइलें हैं: एक एक्सएमएल और थंबनेल। मैं एक्सएमएल फ़ाइल खोलना चाहता हूं और डिस्क पर निकालने के बिना इसे पार्स करना चाहता हूं।एक ज़िप इन-मेमोरी

दस्तावेज़बिल्डर के पार्स विधि में से एक इनपुट इनपुट की आवश्यकता है। क्या ज़िप्ड फ़ाइल में एक्सएमएल के इनपुटस्ट्रीम को पाने का कोई तरीका है? मैं थोड़ी देर हो गई। मुझे पूरा यकीन है कि ज़िपपूटस्ट्रीम या ज़िपफाइल के पास कुछ प्रस्ताव है, लेकिन मैं इसे समझ नहीं सकता:/

अग्रिम धन्यवाद!

उत्तर

4

मेरा मानना ​​है कि आप कुछ इस तरह की तलाश में हैं:

FileInputStream fin = new FileInputStream("your.zip"); 
ZipInputStream zin = new ZipInputStream(fin); 
ZipEntry ze = null; 
while ((ze = zin.getNextEntry()) != null) { 
    if (ze.getName().equals("your.xml")) { 
     // pass zin to DocumentBuilder 
    } 
} 
+0

मैंने इनपुटस्ट्रीम को दूसरी विधि में वापस करने की भयानक गलती की जिसमें पार्सिंग एल्गोरिदम शामिल था। इसलिए स्ट्रीम को पहले से बंद कर दिया गया था: / – pek

0

java.util.zip में कुछ इनपुट धारा कक्षाएं, नहीं यकीन है कि अगर वे मदद कर रहे हैं, लेकिन यह, होनहार लग रहा है विशेष रूप से ZipInputStream

संबंधित मुद्दे