Разбор XML внутри zip-памяти - PullRequest
7 голосов
/ 20 марта 2011

У меня есть Zip, который содержит два файла: XML и миниатюру. Я хотел бы открыть файл XML и разобрать его БЕЗ необходимости извлекать на диск.

Один из методов разбора DocumentBuilder требует InputStream. Есть ли способ получить InputStream XML в файле Zipped? Я как бы потерялся. Я уверен, что ZipInputStream или ZipFile есть что предложить, но я не могу понять: /

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 20 марта 2011

Я полагаю, вы ищете что-то вроде этого:

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 голосов
/ 20 марта 2011

В java.util.zip есть несколько классов входного потока, не уверен, что они помогут, но выглядит многообещающе, особенно ZipInputStream .

...