2011-03-20 71 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