2011-03-20 40 views
7

我有一個包含兩個文件的Zip:一個XML和一個縮略圖。我想打開XML文件並解析它,而不必在磁盤上解壓。解析內存中的zip內的XML

DocumentBuilder的解析方法之一需要一個InputStream。有沒有辦法在Zipped文件中獲取XML的InputStream?我有點迷路了。我很確定ZipInputStream或ZipFile有東西可以提供,但我無法弄清楚它:/

謝謝你提前!

回答

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

我犯了一個可怕的錯誤,即將InputStream返回到包含解析算法的另一個方法。所以流在解析之前已經關閉了:/ – pek 2011-03-20 00:34:38