Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sehr große XML-Datei einlesen mit Java

Frage Entwicklung Java

Mitglied: Bierkistenschlepper

Bierkistenschlepper (Level 2) - Jetzt verbinden

08.05.2011 um 13:27 Uhr, 8493 Aufrufe, 3 Kommentare

Hallo,

ich soll für die Uni eine sehr große XML-Datei mit Java einlesen. Die Datei hat um die 200 MB. Es handelt sich um Kartendaten von OpenStreetMap. In Java scheint es ja eine ganze Menge von Möglichkeiten zu geben, XML zu verarbeiten. Welche Ist denn hier empfehlenswert? Ich brauche nicht alles aus der Datei, sondern erstmal nur Nodes und Ways. Von diesen brauche ich dann bestimmte Attribute. Es wäre also sinnvoll erstmal zu filtern.

Und was meinen die in den APIs immer mit Handler?

Gruß,
Bierkistenschlepper
Mitglied: Biber
08.05.2011 um 13:52 Uhr
Moin Bierkistenschlepper,

die beiden wichtigsten Strategien beim Java-Handling von XML-Strukturen sind DOM (Document Object Model) und SAX (Simple API for XML).

Konzeptioneller Unterschied:

Bei den ganzen DOM-Parsereien wird immer "das ganze XML-Document" in den Hauptspeicher geladen in irgendwelchen internen In-Memory-Strukturen.
Dann kann sausauschnell in dieser Tree-Struktur vorwärts/rückwärts gelesen/gesprungen werden, in der Hierarchie hoch/runtergedaddelt werden etc.

Beim SAX-Konzept wird nicht das ganze Dokument in memory gebeamt, sondern immr nur "vorwärts" eingelesen und es bleibt dem User/Java-Coder berlassen, wie er/sie reagiert, wenn sich ein neuer Knoten/ein Unter-Tag öffnet.
Vorteil: du brauchst beim "Lesen" dir nur die Knoten merken/übernehmen, die dich interessieren. ->dazu gibt es die angesprochenen Handler.
Nachteil - du liest nur in eine Richtung (vom Anfang bis zum Ende der Datei, kannst nicht rückwärts gehen).

In diesem Fall sollten also die Handler für "Nodes" und "Ways" diese Knoten auslesen und sich die Inhalte "merken" und verarbeiten, andere Unterknoten sollten nur gelesen werden vom Open-Tag bis zum Close-Tag, aber nicht "gemerkt" und nicht weiterverarbeitet werden.

Also lies bei SAX-Parsern weiter.

Grüße
Biber
Bitte warten ..
Mitglied: Bierkistenschlepper
08.05.2011 um 16:22 Uhr
Hi Biber, danke schonmal für die verständliche Antwort!

Ja, SAX ist definitiv das richtige, denn die Dateien sind nicht verschachtelt. Und wie genau liest SAX ein? Zeilenweise? Elementweise?
Bitte warten ..
Mitglied: Biber
08.05.2011 um 17:08 Uhr
Moin Bierkistenschlepper,

Zitat von Bierkistenschlepper:
Hi Biber, danke schonmal für die verständliche Antwort!

Und wie genau liest SAX ein? Zeilenweise? Elementweise?
Schade, Pink Floyd waren vermutlich vor deiner Zeit das Maß aller Dinge.

Damals gab es solche auch immer noch auf die IT-Belange passenden Songzeilen wie
Can you tell a green field
from a cold steel rail?
A smile from a veil?
Do you think you can tell?


Der Begriff "Zeile" ist ausserhalb des Sprachumfangs aller XML-Definitionen.
Es ist einer XML-Datei vollkommen Banane, ob die XML-Datei überhaupt aus mehr als einer Zeile besteht.
Es wird immer von <einTag> bis </einTag> geparst - also mit deinem Vokabular "elementweise".
Und die Handler (letzten Endes sind es ja Events) für verschiedene <einTag>s werden halt aufgerufen u.a. bei Ereignis "<einTag> beginnt" und "<einTag> endet hier".

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Alle XML Dateien eines Ordners in Excel per VBA einlesen
Frage von thomas1972Microsoft Office5 Kommentare

Guten Morgen, ich möchte bestimmte XML Dateien eines Ordner in eine Mappe hintereinander einlesen. Eine Datei bekomme ich ohne ...

XML
Einlesen bestimmten Werten, Texten aus XML- Datei in EXCEL
gelöst Frage von EverestXML11 Kommentare

Hallo Experten, ich möchte in Excel die Werte/Texte aus einer XML-Datei direkt lesen ohne sie zu importieren. Kann jemand ...

Batch & Shell
Inhalt einer Datei als Tabelle einlesen
gelöst Frage von SmogKielBatch & Shell2 Kommentare

Hallo, ich möchte gerne eine Datei zeilenweise einlesen und als Tabelle speichern. Hat jemand eine Idee wie das funktioniert? ...

Entwicklung
Aus Dateien Strukturiert XMLs erstellen
gelöst Frage von MaxiamEntwicklung24 Kommentare

Schönen guten Morgen, ich bin neu also verzeiht Eventuelle ungenaue Fragestellungen ;) Ausgangssituation: ca. 1600 1Kb große Dateien die ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 8 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 15 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 17 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 20 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...