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.

SAX, DOM, JDOM was benutzen??

Empfohlene Antworten

Veröffentlicht

Hallo,

folgendes.. Ich habe vor Daten aus mehreren XML-Dateien aus zu lesen welche auch etwas größer werden könnten. Diese werden dann aufbereitet und später über eine andere Schnittstelle in eine Datenbank geschrieben.

An diesen XML-Dateien möchte ich nichts verändern sondern nur lesen und deren Inhalte verarbeiten... Dann habe ich aber auch eine XML-Datei wo eine gewisse Konfiguration enthalten ist die ich nicht nur auslese sondern auch über Java verändern kann/will/muss.

Ich bin noch nicht lange in der XML-Schiene drin und bin mir etwas unschlüssig welchen Parser ich nun nehmen soll. Und ja ich habe die Suche benutzt aber nichts gefunden was mir in diesem Fall weiter hilft.

Es soll nur ein Parser sein... SAX fällt ja eigentlich schon mal weg oder?? weil ich eben eine besagte Datei verändern will/kann. Oder gibt es da Tricks wie ich doch Dateien verändern kann???

DOM hat Probleme mit größeren Dateien was aber in diesem Fall ebenfalls vorkommen kann..

JDOM ist doch ziemlich an DOM angelehnt... Habe mich aber noch nicht weiter damit beschäftigt..

Was nehme ich nun wenn ich mich für einen entscheiden muss???

Danke schon einmal für eure Antworten..

:)

Es soll nur ein Parser sein... SAX fällt ja eigentlich schon mal weg oder?? weil ich eben eine besagte Datei verändern will/kann. Oder gibt es da Tricks wie ich doch Dateien verändern kann???
Das eine hat nichts mit dem anderen zu tun. Um eine Datei zu verändern musst du sie zunächst einmal einlesen - das kann auf die verschiedensten Arten passieren. In der Regel verwenden aber auch alle DOM-Parser intern SAX zum Auslesen der Daten. Hier wird dann eben als eigentlich Verarbeitung eines Elements (ohne Verarbeitung ist SAX witzlos) ein DOM Tree erzeugt.

Zu deinem Problem: Wenn du Daten verändern möchtest wirst du nicht drumrumkommen sie als DOM einzulesen und als solches zu verarbeiten. Bei sehr großen Dateien kann das durchaus stückweise erfolgen, indem du über SAX einen bestimmten Bereich des Dokumentes einliest (beispielsweise 10 Elemente), hieraus einen DOM Tree erzeugst, die Verarbeitung dieses Teilbaumes startest, die nächsten 10 Element einliest, und so weiter.

Wenn du aber eine komplette Datei ändern und wieder speichern willst wirst du (ohne große Verrenkungen machen zu müssen) nicht drumrumkommen auch die komplette Datei in einem DOM Tree zu laden.

JDOM ist doch ziemlich an DOM angelehnt... Habe mich aber noch nicht weiter damit beschäftigt..
JDOM ist DOM. DOM ist kein Produkt sondern eine Technologie - eben XML Date(ie)n in einer Objektstruktur abzubilden. Der Unterschied zwischen JDOM und W3C DOM ist das einfachere und intuitivere Handling der Objekte - mehr aber auch nicht.

Hallo,

danke für deine Antwort... Ich verwende jetzt dom4j.. Ich konnte schon damit ein wenig testen und es klappt so wie ich mir das vorstelle..

Danke für den Tipp mit dem einlesen von SAX und Baumbilden durch DOM... Ich denke das werde ich so durch bekommen..

Die Datei die ich komplett auslesen und evtl. wieder verändern werde ist auch nicht so groß das es jetzt dramatisch wäre sie komplett von DOM auslesen zu lassen.. Nur bei den anderen Dateien wo ich die Daten für die DB heraus lesen muss und welche schon eine enorme Größe erreichen können ist dein Tipp am besten.

Danke :D

hast du auch schema (xsd) für deine xml?

dann wäre vielleicht nocht jaxb (java api for xml binding) interessant. enthalten ist das ganze im jwsdp (java webservice development pack).

bigredeyes

@Perdi

Hast du schon einmal was von StAX gehört??? Es soll genau das machen was du beschrieben hast. Ich versuche gerade mich etwas ein zu lesen darin.. Wäre vielleicht eine bessere Variante...

:)

Hast du schon einmal was von StAX gehört?
Gehört, gefunden und kurz angesehen. Sieht ganz nett aus, aber das was ich - bisher - mit XML Verarbeitung erreicht habe ging auch ohne. Einen Objektbaum zu erstellen ist bei einer SAX-Verarneitung nicht wirklich schwierig. DocumentHandler implementieren, zwischendurch die Verarbeitung antriggern - insgesamt vielleicht 15 bis 20 Zeilen Code. Dafür tue ich mir kein weiteres Framework an.

apache commons digester

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.