Wie Attribute aus XML in ein Model schreiben (StAX)?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi Leute,

ich habe eine Model Klasse die einfach nur Werte halten soll (Model). Diese Werte sollen aus einer XML mit StAX gelesen werden und dann in die entsprechenden Variablen des Models kopiert werden.
Bisher habe ich eine Ausgabe aller XML-Elemente und Attribute, aber anstatt diese auszugeben möchte ich sie direkt in mein Model schreiben.

Fällt da jemanden eine saubere Lösung zu ein (ohne wilde if-then-else Konstruktue und mit möglichst wenig Schleifen)? :)

Das habe ich bis jetzt:

Code:
    public void load(InputStream anInputStream) throws Exception {

        XMLInputFactory theXMLInputFactory = XMLInputFactory.newInstance();
        XMLEventReader theParser = theXMLInputFactory.createXMLEventReader(anInputStream);

        while(theParser.hasNext())
        {
            XMLEvent theEvent = theParser.nextEvent();
            switch (theEvent.getEventType())
            {
                case XMLStreamConstants.START_ELEMENT:
                    StartElement theElement = theEvent.asStartElement();
                    System.out.println("START: " + theElement.getName());
                    for(Iterator theAttributes = theElement.getAttributes(); theAttributes.hasNext();)
                    {
                        Attribute theAttribute = (Attribute)theAttributes.next();
                        System.out.println("  Attribut: " + theAttribute.getName()
                                + "\n   Wert: " + theAttribute.getValue());
                    }
                    break;
                case XMLStreamConstants.END_ELEMENT:
                          System.out.println("ENDE: " + theEvent.asEndElement().getName());
                    break;
                default:
                    break;
            }
        }
        theParser.close();
    }

Danke schonmal im Voraus! :)

Gruß Nova
 
G

Guest

Gast
Hm, XStream macht irgendwie nicht so einen guten Eindruck. Aber dein Ansatz ist gut ;-) Gibt es vielleicht noch andere Alternativen zu XStream? Mir kommt es beim XML-Parsing hauptsächlich auf die Performance an.

Danke schonmal! :)

Gruß Nova
 

kama

Top Contributor
Anonymous hat gesagt.:
Hm, XStream macht irgendwie nicht so einen guten Eindruck.
Warum nicht? Wo genau ist Dein Problem?

Anonymous hat gesagt.:
Aber dein Ansatz ist gut ;-) Gibt es vielleicht noch andere Alternativen zu XStream? Mir kommt es beim XML-Parsing hauptsächlich auf die Performance an.
Wie groß sind denn die Dateien, die Du parsen musst ? 1-2 GB ?

MfG
Karl Heinz Marbaise
 
G

Guest

Gast
Ne, so groß nicht, aber mit DOM hab ich auch schon mit kleinen XMLs Probleme gehabt.
Bei XStream ist mir zu viel Reflection drin und das ist auch irgendwie ziemlich unbekannt, da gibts doch sicher eine professionellere Lösung oder? :)

Gruß Nova
 

kama

Top Contributor
Hallo,

Anonymous hat gesagt.:
Ne, so groß nicht,
Wo ist dann das Problem?

Anonymous hat gesagt.:
aber mit DOM hab ich auch schon mit kleinen XMLs Probleme gehabt.
Tja dann ist XStream genau die Lösung.

Anonymous hat gesagt.:
Bei XStream ist mir zu viel Reflection drin
Ähm. was ist dagegen einzuwenden? Viele andere Frameworks nutzen auch Reflection ? Hinberate etc.

Anonymous hat gesagt.:
und das ist auch irgendwie ziemlich unbekannt,
Hm...Kratz am Kopf....Es wurde bereits schon in verschiedenen Projekte eingesetzt an denen ich mit gearbeitet habe und es wurde nicht von mir vorgeschlagen. Also ist das relativ...Ich kenn sehr viele leute die XStream kennen und nutzen...wenn ich die Leute die ich kenne und die Projekte rechne und deren Aussagen nehme, komme ich auf ca. 100 Projekte bei denen XStream eingesetzt wird...


Anonymous hat gesagt.:
da gibts doch sicher eine professionellere Lösung oder? :)
Was hat professionell mit Bekanntheit zu tun? Apropos, wie definierst Du professionell ?

Selbstverständlich kannst Du es auch ein wenig komplizierter haben, dann kannst Du auch XMLBeans, nehmen...

Wenn das Deinen Professionalitätsanspruch genügt ?

MfG
Karl Heinz Marbaise
 
G

Guest

Gast
Hi,

also ich hab mich jetzt für JAXB entschieden, ist simpel umgesetzt, performant durch die Anwendung von StAX, benötigt keine Konfiguration durch Strings und wird direkt mit Java 1.6 ausgeliefert (keine externen Module notwendig).

Und es funktioniert! ;-)

Allerdings habe ich jetzt noch ein paar unschöne Sachen.
Meine Ergebnis-XML sieht so aus:

Code:
<?xml version="1.0"?><test><discription>Test-Description</discription><input xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Test</input></testDefinitionModel>

Alles wird in eine Zeile geschrieben und jedesmal wenn eine Collection gespeichert wird, wird in das entsprechende Tag "xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"" mit hineingeschrieben.
Lässt sich das irgendwie unterbinden?

Danke schonmal im Voraus! :)

Gruß Nova
 
G

Guest

Gast
Ah, ich habs hinbekommen. Geht mit @XmlElement(namespace = "").

Danke! :)

Gruß Nova
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
L Transformer verschluckt Attribute bei der Ausgabe XML & JSON 3
W XML einlesen und Attribute auslesen XML & JSON 1
D Attribute aus XML Auslesen XML & JSON 5
P Xpath zugriff auf Attribute XML & JSON 3
R cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'. XML & JSON 4
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
F EMF, XSD to ECore mapping, Attribute vs. Element XML & JSON 2
A XML-Attribute vergleichen XML & JSON 4
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
G JAXB XML-Attribute feststellen XML & JSON 4
2 wie komme ich an die Attribute XML & JSON 3
S Attribute von Elementen auslesen mit XPath XML & JSON 2
B 2 Attribute in einer xsl XML & JSON 2
M Gegenseitig ausschließende Attribute definieren in XSD XML & JSON 7
C DOM: Attribute nicht in alphabetischer Reihenfolge schreiben XML & JSON 3
eQuest XML Jaxen Attribute auslesen XML & JSON 2
C Mit SAX Parser XML Attribute auswerten XML & JSON 3
H XML Attribute auslesen XML & JSON 5
S JAXB und viele verschachtelte Attribute XML & JSON 1
G xquery - nodes unterscheiden sich nur durch attribute :-( XML & JSON 4
L Objekt Serialisierung: Schreiben aller Attribute erzwingen XML & JSON 5
E EMF Modell um alle möglichen Attribute auszulesen XML & JSON 12
S XSD: restriction und attribute gleichzeitig XML & JSON 4
V XMLEncoder: Attribute nicht serialisieren XML & JSON 2
D Wie kann ich Namespace Attribute in den Elementen entfernen? XML & JSON 2
M Attribute parsen XML & JSON 6
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
B jdom outputter ohne attribute XML & JSON 2
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
M attribute funken nicht XML & JSON 3
R Jtree + Attribute XML & JSON 6
Z DOM: Attribute in Knoten schreiben XML & JSON 2
J EMF Model Code Generierung XML & JSON 3
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
W XPath schreiben XML & JSON 1
N Java XML schreiben funktioniert nicht XML & JSON 1
L Mit Hilfe von POI eine Tabelle ohne Rahmen in Word schreiben XML & JSON 2
J XML als stream schreiben? XML & JSON 2
M JAXB: automatisches Groß schreiben Property XML & JSON 9
L Datenstruktur in XML-File schreiben XML & JSON 2
G DXF-File schreiben XML & JSON 17
P Komfortabel XML Dokumente schreiben und lesen XML & JSON 6
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
S XML lesen und schreiben XML & JSON 2
T Schreiben einer XML XML & JSON 8
J wert IN einem tag einlesen/schreiben XML & JSON 4
K JAXB: Klassen mit Annotation Lesen/Schreiben XML XML & JSON 3
K '&' in xml schreiben XML & JSON 2
G Problem beim schreiben von XML in eine File XML & JSON 2
sylo DOM Document in XML Datei schreiben XML & JSON 5
J xmlencoder Zustände einer Bean schreiben XML & JSON 3
B eigentlich einfach nur XML schreiben XML & JSON 3
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
M DOM, Werte mit setAttribute in XML schreiben XML & JSON 3
B XML einlesen und in Datenbank schreiben XML & JSON 1
D Tabs/Einrückungen der XML-Elemente gehen beim Schreiben verloren XML & JSON 5
J XML lesen schreiben XML & JSON 7
T Xml lesen und in .txt zeilenweise schreiben XML & JSON 4
J XML - schreiben und einlesen (Schema) XML & JSON 14
L Einfaches XML Lesen und Schreiben XML & JSON 4
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3
K XML-schreiben aus ResultSet dauert zu lange XML & JSON 10
G Mit JAXP in eine Datei schreiben XML & JSON 2
R XML-Datei schreiben - InstantiationException XML & JSON 2
S XMl Dateien in Java schreiben XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben