Парсинг XML в zip в памяти

У меня есть Zip, который содержит два файла: XML и эскиз. Я хотел бы открыть XML-файл и проанализировать его без необходимости извлечения на диск.

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

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

2 ответов


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

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
    }
}

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