Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

xml-Dateien in Zip-File parsen

Empfohlene Antworten

Hallo ich hab mal wieder ein Problem mit Zip-Files.

Ich habe ein Zip-File, in dem verschiedene XML-Dateien sind und diese möchte ich mit DOM parsen.

wich ich da mit ungezippten mache steht in dem Beispiel-Code. Aber wie mache ich das mit gezippten Dateien?


File file = new File("test.xml");            

                        System.out.println(file.getName()); 

                        try{ 

                                DOMParser parser = new DOMParser(); 

                                parser.parse(file.getAbsolutePath()); 

                                Document doc = parser.getDocument(); 

                                NodeList nodes = doc.getElementsByTagName("Depends"); 

                                System.out.println("There are " + nodes.getLength()+" elements."); 

                                for(int x=0;x<nodes.getLength();x++){ 

                                        System.out.println(nodes.item(x).getTextContent()); 

                                } 

                        }catch(Exception ex){ 

                                ex.printStackTrace(); 

                        } 


Was nun wenn file = new File("testZip.zip/test.xml") ist ?

Danke schon mal :-)

Ich habe das noch nie gemacht, aber ich gehe davon aus, dass du die Dateien erst entpacken musst. Das kann ja dein Programm übernehmen. Da gibts bestimmt schon was, was du benutzen kannst zum entpacken von Zip Dateien.

anstelle von new File(bla.xml)

musst Du FileInputStream() nutzen.

Wenn Du das umprogrammiert hast, kannst Du sehr schnell um den FileInputStream herum noch einen ZipInputStream hängen.

Schau mal die JDK-Hilfen dazu an, das hilft Dir sicher weiter.

anstelle von new File(bla.xml)

musst Du FileInputStream() nutzen.

Wenn Du das umprogrammiert hast, kannst Du sehr schnell um den FileInputStream herum noch einen ZipInputStream hängen.

Schau mal die JDK-Hilfen dazu an, das hilft Dir sicher weiter.

Haste da vielleicht mal ein Beispiel für mich, wie man das machen könnte. :confused:

Für welches Problem? Denn es sind zwei Teilaufgaben zu lösen!

Einmal Deinen vorhandenen Code unter Nutzung des FileInpuStreams zu verändern und das zweite ist dann aus dem ZipFile den InpuStream Deiner gewünschten Datei zu bekommen.

Das ist zum Beispiel der Code für das Holen eines InpuStreams aus einer eingetragenen Datei in einer ZIP-Datei.

import java.util.zip.*;

ZipFile file = new ZipFile("datei.zip");

ZipEntry entry = file.getEntry("datei.xml");

InputStream is = file.getInputStream(entry);

Das findet man auch ganz einfach anhand der http://java.sun.com/javase/6/docs/api/, welche Du auf Deiner Entwicklungsmaschine lokal oder direkt im Web als Favoriten offen haben solltest. Und zwar immer, denn das erspart peinliche Fragen :D

Das kannst Du gleich praktisch am Beispiel des DOM-Parsers üben, indem Du anhand der JDK-Hilfe nachschaust, wie der DOM-Parser arbeitet.

Bearbeitet von VaNaTiC

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.