mehrere Parameter in XML (stax)

ph1015

Mitglied
Hallo,

ich habe mich seit kurzem in das Thema "StaX" eingearbeitet (Anfänger).

Ich habe eine XML Datei, die wie folgt aussieht:
[XML]<start version="1.0.0">
<Named>
<Name>name1</Name>
<User>
<Name>name2</Name>
<Title>Title2</Title>
<Type>
<Name>Name3</Name>
<Title>TypeTitle</Title>
[...]
</Type>
</User>
</Named>
</start>[/XML]

Ich möchte nun die XML Datei Parsen und die Werte (je nach dem) entsprechend ändern. Ich kann zwar die XML Datei mit StaX auslesen, aber nicht die doppelten Einträge <Name>. Der erste Wert wird von dem letzten überschrieben. Java-Code sieht wie folgt aus:
Java:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream in = new FileInputStream(file);
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
Item item = null;

while (eventReader.hasNext()) {
                XMLEvent event = eventReader.nextEvent();
                if (event.isStartElement()) {
                    StartElement startElement = event.asStartElement();

                    if (startElement.getName().getLocalPart().equalsIgnoreCase(Named)) {
                        item = new Item();
                    }

                    if (item != null) {
                        if (event.asStartElement().getName().getLocalPart().equalsIgnoreCase(NAME)) {
                            event = eventReader.nextEvent();
                            item.setName(event.asCharacters().getData());
                            continue;
                        }

                        if (event.asStartElement().getName().getLocalPart().equalsIgnoreCase(TITLE)) {
                            event = eventReader.nextEvent();
                            item.setTitle(event.asCharacters().getData());
                            continue;
                        }
                    }
                }

                if (event.isEndElement()) {
                    EndElement endElement = event.asEndElement();
                    if (endElement.getName().getLocalPart().equalsIgnoreCase(Named)) {
                        items.add(item);
                    }
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (XMLStreamException e) {
            e.printStackTrace();
        }

        return items;

Kann mir einer einen Tipp geben, wie ich es am besten Parsen kann? Vielleicht doch nicht mit StaX?

Viele Grüße
Andy
 

ph1015

Mitglied
erstmal danke für die schnelle Antwort.

gibt es hierfür bereits eine Methode oder soll ich mir die Parent-Hierarchie in ein Array o.ä. zwischen speichern?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
D Stax mehrere "Kindelemente" zusammen XML & JSON 2
sylo Mehrere XSDs und mehrere Namensräume in einer XML unterbringen? XML & JSON 2
I XSL-FO mehrere Reports in einem PDF XML & JSON 3
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4
C Mehrere Element_Nodes zusammenfassen zu einem Element XML & JSON 9
S mehrere XML Files mit JaxB XML & JSON 3
T Mehrere gleichnamige Unterelemente auslesen XML & JSON 2
Z JAX-WS Parameter Required? XML & JSON 2
Raidri JSP Parameter an XSLT übergeben XML & JSON 2
P XML aus POST parameter XML & JSON 6
T XSLT Parameter übergeben und Ergebnis empfangen XML & JSON 1
A Interfaces bei StAX XML & JSON 2
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
T StAX und Reihenfolge in XML XML & JSON 6
H JAXB und STAX XML & JSON 2
T StAX / SAX => Wie XML Datenstruktur in Java abbilden? XML & JSON 2
Y stax Problem XML & JSON 3
N STAX Serializer (Formatierer)? XML & JSON 2
T StAX und Codierung XML & JSON 3
G Wie Attribute aus XML in ein Model schreiben (StAX)? XML & JSON 7
A StAX formatierung oder auch newline! XML & JSON 2
K stax problem XML & JSON 2
J StAX -- Woodstox Implementation nutzen XML & JSON 6
A StAX API: Cannot Cast from QName to String! XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben