SAX, StAX, JDOM oder DOM , ab wann welches für XML

Status
Nicht offen für weitere Antworten.
N

noobster

Gast
Hi kurz und bündig gefragt, ich schreibe gerade eine anwendung die sich dabei auf xml daten bezieht die in form von xml Dateien vorliegen.

Die GUI wird ein flash werden, da die entsprechenden xml dateien aber zuweilen 700 kb gross sind was ca 250.000 zeichen oder 3500 (zm teil sehr lange) zeilen bedeutet möchte ich die xml daten nur einmal von java zum flash hinschicken und dann nurnoch die änderungen übertragen.

also wenn node mit label "bla" und id=69 im attribute "infotext" eine andere value erhält wird nur dieser knoten übertragen.

ich hab mir nun die xml funktionen und klassen in java angeschaut und bin mir nicht sicher was ich nehmen bzw wo ich mich als anfänger reinarbeiten soll, ich hab schonmal nach sax sourcecodes und beispielen gesucht zwar auch was gefunden das waren aber direkt so 200 zeilen, ich suche nurwas u mal zu sehen wie es geht als beispiel eingabe ausgabe..

wäre sehr nett wenn ihr mir schreiben könntet was für meine anwendungen so ambesten und für einen anfänger am einfachsten ist.
 

byte

Top Contributor
JDOM ist imo recht anfängerfreundlich. Wobei sich wohl mit SE5 auch einiges im JAXP geändert hat, vielleicht ist das mittlerweile nicht mehr so - anstrengend - wie früher. ;)
 
N

noobster

Gast
öhhhhm

eine sache fällt mir da gerade noch ein, ich bin mir nicht sicher ob die zu ladenden daten wirklich VALIDES xml sind, zumindest kommt öfters zwischenduch die documanttype zeile nochmals, das ist leider bei allen xml dateien so welche von einer anderen anwendung geschrieben werden auf die ich keinen einfluss habe, andersrum ist es kein problem für das andere programm valides xml zu lesen wie sieht das da bei jdom aus muss ich ich das xml erst beutifien bis es valide ist?
 

foobar

Top Contributor
Also wenn du mit DOM parsen willst brauchst du zumindest wohlgeformtes XML, ansonsten hat das wenig Sinn.

Ich verstehe nicht so ganz was du meinst. Poste doch mal ein par Daten.

Aua, meine Augen.
 
N

noobster

Gast
ich versuche es zu erklären.

Ich möchte eine bestehende Entwicklungsumgebung durch ein plugin um funktionalitäten erweitern, eine art editor gehört auch dazu.

Diese Entwicklungsumgebung benutzt sehr chaotiche xml dateien (xml mit mehreren documenttype zeilen so als ob man einfach angehängt hätte, in einem hab ich sogar einen nicht existierenden knoten gefunden der trotz seiner nichtexistenz geschlossen wurde) bisher hab ich mit flash geparst und flash verlangt nicht unbedingt was wohlgeformtes aber bei dem zuviel geschlossenen knoten dens gar nicht gab hat auch flash gesagt "dokument zuende, das wars"

So nun diese dateien darf ich von der struktur her nicht verändern, jedoch wäre es möglich das xml gegen ein wohlgeformtes zu ersetzen, problem dabei ist, werksmässig sind die config.xml dateien zwar gleich aber nachher werden sie teilweise durch , user, setup, plugins angepasst also kann ich nicht einfach irgendwie meine umwandeln das dieses wohlgeformt ist und so auf ein fremdsystem aufspielen und derjenige der sich dort plugins instaliert hat schaut dann in die röhre.

daher nun nochmal zwei fragen
1) gibt es einen xml beautyfier der das nicht wohlgeformte in ein wohlgeformes xml umzuwandeln vermag.
2) in dem beispiel vom link oben wird eine dtd verlangt, ist die DTD unbedingt von nöten? weil natürlich gibts zu keiner der xml dateien eine dtd.
 

foobar

Top Contributor
2) in dem beispiel vom link oben wird eine dtd verlangt, ist die DTD unbedingt von nöten? weil natürlich gibts zu keiner der xml dateien eine dtd.
Wenn deine Xmlinstanz eine Doctypedefinition hat und standalone auf false steht, mußt du gegen eine DTD parsen um valides XML zu erhalten ansonsten nicht.

1) gibt es einen xml beautyfier der das nicht wohlgeformte in ein wohlgeformes xml umzuwandeln vermag.
Ein Beautifier sorgt nur dafür, daß ein XML-Datenstrom sauber eingerückt ist.

Wenn dein XML nicht mal wohlgeformt ist, macht das alles keinen Sinn.
 
N

noobster

Gast
ok dann muss ich halt einen parser bauen der mir alle dateien umparst, reicht ja dann einmalig bei der installation.

danke für deine antworten:)


Gruss
Sascha
 

KSG9|sebastian

Top Contributor
Hmm..ich lese ständig solche Sachen wir z.B.

"Ich muss ne XML-Datei verarbeiten"
"XML-Datei ist aber nicht wellformed"
"Kann ich auch nix dran ändern, ist von der Firma vorgegeben"

Weiß ja nicht, aber WENN man XML verwendet dann richtig. Versteh das nicht..mein Chef würd mich köpfen wenn ich ihm eine nicht wohlgeformte XML vorsetzen würde..

gruß
 

byte

Top Contributor
War sicher mal XML. Ist dann über 17 Abteilungen gewandert und am Ende kommt nur noch Blödsinn raus. Das ist der "stille Post" Effekt. ;)
 

AlArenal

Top Contributor
Passend zum Thema ein taufrischer Blog-Eintrag auf Java.net:

Introduction to StAX

Auszug:
Processing XML documents has become a critical and integral part of most applications being developed today. Depending on different environments, there are various ways to process an XML document within a program. All these can be broadly categorized into two approaches:

1. Tree-based APIs: DOM (Document Object Model) implementations use this technique. They basically load the whole XML file into memory and process it. The model they build is usually larger than the original XML document, thus duplicating and wasting memory.
2. Event-based APIs: When this type of a parser is given some XML to process, it sends out events corresponding to the information items it finds. The common approach has been to use a push-based approach like SAX to process the XML. This is more efficient than DOM, in terms of memory. The problem with the push model is that once started, it goes to the end of the document and the caller must be ready to handle all of the events in one shot. So the caller that invokes the parser has no control over the parsing phase.

Both of these models give little or no control to the user in this parsing process. Once started, whether tree-based or event-based, both parsing approaches consume the whole data stream at once. JSR 173 defines a pull streaming model, StAX (short for "Streaming API for XML"), for processing XML documents. In this model, unlike in SAX, the client can start, proceed, pause, and resume the parsing process. The client has complete control.

Where will this come in handy? Think about an XML processing engine, like Apache Axis2, where memory and performance are critical parameters. Upon the receipt of a SOAP message, one may need to parse the message depending on some criteria and constrain the parse to various levels. This can easily be done with a parser that gives control to the client.
 
N

noobster

Gast
@ KSG9
ich erlebe soetwas auch icht zum ersten mal nur zum ersten mal mit java, ich erstelle hin und wieder kleinere erweiterungen die meistens webbasiert sind oder die ich mittels ZINC(fügt der ausfürbaren flash datei weitere funktionen hinzu) nur wolte ich mich diesmal endlich an java versuchen zumal bald ein grösseres Projekt mit Java open source server im backend ansteht.

@ byto
ja so wie es aussieht war das genau so;)

@AllArenal
auch dir Danke ich werd mich nochmals genauer mit StAX auseinandersetzen da ich gleichzeitig mehrere xml dokuemnte habe (so ca. 8-10 in der grössenordnung von jeweils 1MB bzw. 1.000.000 zeichen) dazu kommen noch ca. 20 kleinere XML dateien.

:)
 
A

Aimee

Gast
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Wie jdom einbinden Java Basics - Anfänger-Themen 7
S Erste Schritte Jdom AusgabeSchleife Java Basics - Anfänger-Themen 5
S JDom API Doc in eclipse hinzufügen? Java Basics - Anfänger-Themen 2
T executable Jar JDOM Java Basics - Anfänger-Themen 9
T JDom komische Ausgabe Java Basics - Anfänger-Themen 4
T JDom Java Basics - Anfänger-Themen 8
X JDOM Error Java Basics - Anfänger-Themen 7
G jar datei funktioniert nicht ohne jdom.jar im Ordner Java Basics - Anfänger-Themen 7
R JDom Exceptions Java Basics - Anfänger-Themen 4
G JDOM Java Basics - Anfänger-Themen 2
G JDOm + String Java Basics - Anfänger-Themen 2
J Mit JDOM HTML Files erzeugen? Java Basics - Anfänger-Themen 7
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
T JDOM - Document build aus byteArray? Java Basics - Anfänger-Themen 5
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
R Jdom + xml schreiben + ArrayList Java Basics - Anfänger-Themen 4
G JDOM: muss XML-Datei nach Änderung abgespeichert werden? Java Basics - Anfänger-Themen 2
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
I Logik Zahlungsprozess - Wann Bestellobjekt anlegen? Java Basics - Anfänger-Themen 2
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
berserkerdq2 Java streams, wann nutze ich ::, also 2x Doppelpuntk bei Streams? Java Basics - Anfänger-Themen 5
W Wann und warum hashcode und equals? Java Basics - Anfänger-Themen 14
W Wann Rückgabewerte 0, 1, -1? Java Basics - Anfänger-Themen 27
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
F Wann ist es eine Instanz und wann nicht? Java Basics - Anfänger-Themen 1
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Wann Methode abstract? Java Basics - Anfänger-Themen 10
S Wann buffer löschen? Java Basics - Anfänger-Themen 5
R Wie überprüfen wann der User online oder offline ist? Java Basics - Anfänger-Themen 5
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
I Wann ist Client plattformunabhängig? Java Basics - Anfänger-Themen 22
M Best Practice Wann eine Methode schreiben ? Java Basics - Anfänger-Themen 14
K Warum funktioniert das und wann erden die Objektmethoden nun ausgeführt? Java Basics - Anfänger-Themen 7
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
M Wann PATH und wann JAVA_HOME in Windows System 7 setzen? Java Basics - Anfänger-Themen 2
M Wann final verwenden? Java Basics - Anfänger-Themen 5
M Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen? Java Basics - Anfänger-Themen 8
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
K Wann Vererbung und wann Interface verwenden? Java Basics - Anfänger-Themen 12
D Wann genau nutze ich ein solches Interface? Java Basics - Anfänger-Themen 3
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
B Wann toString() überschreiben? Java Basics - Anfänger-Themen 21
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
P Threads Wann läuft es parallel ab ? Java Basics - Anfänger-Themen 4
C Variablen Wann werden Instanzvariablen initalisiert? Java Basics - Anfänger-Themen 10
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
T Ab wann ist es ein großes Projekt? Java Basics - Anfänger-Themen 35
N Bessere Performance durch final: wann denn überhaupt? Java Basics - Anfänger-Themen 28
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
W Wann nutze ich "import"? Java Basics - Anfänger-Themen 12
A junit test wann verwendet man "was"? Java Basics - Anfänger-Themen 4
H Wann ein Objekt der Programmklasse in main anlegen Java Basics - Anfänger-Themen 2
G Wann ist ein == Vergleich bei Gleitkommazahlen fahrlässig? Java Basics - Anfänger-Themen 8
T Wann for und wann while?? Java Basics - Anfänger-Themen 35
-horn- Wann wird alles NaN erzeugt? Java Basics - Anfänger-Themen 22
S Wann wird eine Klasse geladen? Java Basics - Anfänger-Themen 17
C this - wann verwende ich das? Java Basics - Anfänger-Themen 10
T Threads - Ab wann wirds Kritisch?! Java Basics - Anfänger-Themen 7
M Wann muss man eine Variable mit set-/get-Methoden in eine Bean schreiben? Java Basics - Anfänger-Themen 19
G field public/private wann Java Basics - Anfänger-Themen 11
GambaJo Ab wann neue Klasse erzeugen? Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
GambaJo Wann try.catch nutzen? Java Basics - Anfänger-Themen 11
B objekt wann als final deklarieren? Java Basics - Anfänger-Themen 2
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
Y Wann / Wozu inner class Java Basics - Anfänger-Themen 3
K StringBuilder notwendig ab wann? Java Basics - Anfänger-Themen 42
S wann static Funktionen wann nicht Java Basics - Anfänger-Themen 6
N Wann und wie oft finalize Methode verwenden( überschreiben ) Java Basics - Anfänger-Themen 6
Bernasconi Programmierstil / Wann eine neue Datei? Java Basics - Anfänger-Themen 5
M wann, welche schleife Java Basics - Anfänger-Themen 3
M Ab wann ist die Datei sichtbar? Java Basics - Anfänger-Themen 3
G Herausfinden, wann mehrere Threads abgeschlossen sind Java Basics - Anfänger-Themen 3
G Überprüfen wann ein Dokument abläuft? Java Basics - Anfänger-Themen 3
M Wann ist ein Programm beendet? Java Basics - Anfänger-Themen 6
G Wann am besten getSize() aufrufen? Java Basics - Anfänger-Themen 6
I Festellen wann Methode in anderer Klasse fertig ist Java Basics - Anfänger-Themen 5
M wann statische klassen? Java Basics - Anfänger-Themen 14
M Wann ist initialisieren sinnvoll? Java Basics - Anfänger-Themen 4
B Wann Comparator und wann Comparable Java Basics - Anfänger-Themen 6
R Wann benutzt man << oder >> ? Java Basics - Anfänger-Themen 2
G Klassen: Wann initialisiere ich wo meine Variabeln Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben