Chipie Geschrieben 1. August 2006 Teilen Geschrieben 1. August 2006 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.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 1. August 2006 Teilen Geschrieben 1. August 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chipie Geschrieben 4. August 2006 Autor Teilen Geschrieben 4. August 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 4. August 2006 Teilen Geschrieben 4. August 2006 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chipie Geschrieben 9. August 2006 Autor Teilen Geschrieben 9. August 2006 @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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 9. August 2006 Teilen Geschrieben 9. August 2006 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ksg9-sebastian Geschrieben 11. August 2006 Teilen Geschrieben 11. August 2006 apache commons digester Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.