DOM-Parser - Element im Element an bestimmten Stellen auslesen

icrystaltm

Mitglied
Hey Leute, ^^

ich habe eine GAEB-XML Datei die ich in Java parsen muss.
Eine GAEB-Datei hat Positionen, welche eine Leistung beschreibt und gehört zu einem Titel, wobei jede
Titel zu einem Gewerk gehört. Die Leistungsverzeichnis beinhaltet dabei alle Gewerke. (Die Struktur hänge ich noch im Anhang ran).

Ich habe versucht mit JAXB zu parsen, jedoch gefiel mir die Struktur dabei nicht und bin damit eben nicht klar gekommen. Deshalb stieß ich auf den DOM-Parser.

Meine Frage wäre, ob es möglich ist im DOM-Parser auf Elemente in einem Element zugreifen kann und wenn ja wie dies aussehen würde.

Ich habe nämlich Gewerke die alle eine unterschiedliche Anzahl an Leistungen bzw. Titel enthalten, dabei wollte ich eine Methode, dass wenn ein Gewerk bereits all seine
Leistungen enthält, dass ein neues Gewerk seine zugehörigen Leistungen erhält.

Soweit bin ich gekommen, weiter konnte ich leider nicht kommen. Da ich nicht weiß, wie es möglich es, dass man zeigt, dass jetzt ein neues Gewerk kommen muss.

Falls es wichtig ist: im Prinzip brauche ich nur die Tags für BoQCtgy, RNoPart, Itemlist bzw. Item, sowie TextOutlTxt, Qty, QU und LblTx

Java:
public static List<Item> itemZuordnen() {
        for (int i = 0; i < nItemList.getLength(); i++) {
            Element uuk = (Element) nItemList.item(i);
            String oz = uuk.getAttribute("RNoPart"); //Ordinalzahl
            String menge = uuk.getElementsByTagName("Qty").item(0).getTextContent(); //Menge
            String einheit = uuk.getElementsByTagName("QU").item(0).getTextContent(); //Einheit
            String kurztext = uuk.getElementsByTagName("TextOutlTxt").item(0).getTextContent(); //Beschreibung der Leistung
            Item item = new Item(oz, menge, einheit, kurztext);
            arr.add(item);

        }
        System.out.println(arr);
        return arr;
    }
    }

mein restlicher Code:
Java:
public class DomParser {
    static DocumentBuilderFactory factory;
    static DocumentBuilder builder;
    static Document document;
    static Element eGewerk;
    static Oberkategorie gewerk;
    static Unterkategorie titel1;
    static Unterkategorie titel2;
    static NodeList nGewerkUndTitel;
    static NodeList nItemList;
    static List<Item> arr = new ArrayList<Item>();

    public static void main(String[] args)
            throws ParserConfigurationException, SAXException, IOException, ParseException {
        initDoc();
        System.out.println("OZ        MENGE           EINHEIT          KURZTEXT");
        initialisieren();

    }

    public static void initialisieren() {
        String[] gewerkName = new String[9];

        nGewerkUndTitel = document.getElementsByTagName("BoQCtgy");
        nItemList = document.getElementsByTagName("Item");

        for (int i = 0; i < nGewerkUndTitel.getLength(); i++) {
            if (i % 3 == 0) {
                eGewerk = (Element) nGewerkUndTitel.item(i);
                Element eTitel = (Element) nGewerkUndTitel.item(1);
                Element eTitel2 = (Element) nGewerkUndTitel.item(2);

                titel1 = new Unterkategorie(eTitel.getAttribute("RNoPart"),
                        eGewerk.getElementsByTagName("LblTx").item(1).getTextContent(), null); //Hier wird ein Titel erstellt mit der entsprechenden  //Ordinalzahl (OZ) und Beschreibung(Kurztext)
                titel2 = new Unterkategorie(eTitel2.getAttribute("RNoPart"),
                        eGewerk.getElementsByTagName("LblTx").item(2).getTextContent(), null);
                gewerkName[i] = eGewerk.getElementsByTagName("LblTx").item(0).getTextContent();
                gewerk = new Oberkategorie(eGewerk.getAttribute("RNoPart"), gewerkName[i], titel1, titel2); //Hier wird das Gewerk erstellt mit der //entsprechenden Ordinalzahl, Kurztext sowie seine zwei Titel
                System.out.println(gewerk.toString());
            }
        }

    }
 

Anhänge

  • Musterdatei.txt
    173,1 KB · Aufrufe: 2
  • Struktur.JPG
    Struktur.JPG
    32,4 KB · Aufrufe: 1
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Methoden Parser für gängige Datumsformate? Allgemeine Java-Themen 1
W CSV-Parser Allgemeine Java-Themen 1
L Generator für einen Parser implementieren Allgemeine Java-Themen 13
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
offi EDIFACT Parser Allgemeine Java-Themen 7
Neumi5694 Parser - Zerlegen verschachtelter Funktionen Allgemeine Java-Themen 2
RalleYTN Lua Parser? Allgemeine Java-Themen 2
O Sax-Parser ließt XML-File doppelt Allgemeine Java-Themen 1
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
A Konstrukt ohne Main für Xml-Parser Allgemeine Java-Themen 1
F Parser Framework/Plugin für Datei in Custom-Format Allgemeine Java-Themen 2
H Best Practice Ideensuche: Flexibel hinzufügbare eigene Parser Allgemeine Java-Themen 6
J Best Practice Parser für Taschenrechner Allgemeine Java-Themen 4
V String nicht im String literal pool speichern - Parser Allgemeine Java-Themen 30
A Parser verursacht Speicherprobleme auf Server Allgemeine Java-Themen 2
P RegEx mit HTML Parser für Java möglich? Allgemeine Java-Themen 10
H Kleiner HTML Parser (Facharbeit) Allgemeine Java-Themen 11
G REST Client / URL Parser Allgemeine Java-Themen 2
F ical4j Parser Allgemeine Java-Themen 7
M String tokenizer / parser Allgemeine Java-Themen 3
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
S HTML => DOM - Welcher Parser für meine Zwecke? Allgemeine Java-Themen 3
E Parser basteln mit CUP Allgemeine Java-Themen 6
T HTML Parser Allgemeine Java-Themen 7
R Script parser Allgemeine Java-Themen 6
T Mathematik Parser Library? Allgemeine Java-Themen 4
N DOM Parser Allgemeine Java-Themen 2
J Parser / Scanner / Tokenizer gesucht Allgemeine Java-Themen 3
S Textfeld Parser sinnvoll? Allgemeine Java-Themen 3
B Parser für logische Ausdrücke Allgemeine Java-Themen 9
D Parser-generator für mathematische Funktionen Allgemeine Java-Themen 12
D CSV Parser Allgemeine Java-Themen 12
T Webseite (HTML) Parser gesucht Allgemeine Java-Themen 8
R Parser: Datei auslesen, Datei erstellen - Geschwindigkeit Allgemeine Java-Themen 16
T Parser für BBCode? Allgemeine Java-Themen 3
S html parser Allgemeine Java-Themen 3
G Parser erstellen Allgemeine Java-Themen 12
T Suche BBCode-Parser in Java Allgemeine Java-Themen 2
A Parser für \ Allgemeine Java-Themen 12
J Java Parser Tool verfügbar? Allgemeine Java-Themen 3
A api latex bzw. latex parser Allgemeine Java-Themen 2
B tipps zum schreiben eines mathematischen parser Allgemeine Java-Themen 13
W Queue.remove() -> no such element exception Allgemeine Java-Themen 17
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
B flying-saucer-pdf Element vertikal strecken Allgemeine Java-Themen 0
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
A Java ListNode Element einfügen ohne Bibliothek Allgemeine Java-Themen 6
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
S Link element an vorletzte stelle einfügen Allgemeine Java-Themen 2
B DomParser - Element filtern Allgemeine Java-Themen 4
S Iterable<?> anzahl der Element Allgemeine Java-Themen 14
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
Messoras List zeigt nur das letzte Element an Allgemeine Java-Themen 14
O aus Liste ein beliebiges Element auswählen Allgemeine Java-Themen 7
G mittleres Element aus TreeMap Allgemeine Java-Themen 5
J XML Element Zugriff Allgemeine Java-Themen 4
S translate verschiebt verkehrtes Element Allgemeine Java-Themen 2
M Webservices: WSDL Files ohne "Service" Element? Allgemeine Java-Themen 4
P Element toString Allgemeine Java-Themen 9
J Element aus HashSet löschen Allgemeine Java-Themen 2
S Element aus ArrayListe löschen --> Thread hängt sich auf Allgemeine Java-Themen 2
E Blob Element kopieren Allgemeine Java-Themen 12
G Element aus Liste entfernen Allgemeine Java-Themen 6
B von Array-Element auf Position in Array Allgemeine Java-Themen 7
M Javadoc | Javadoc Eintrag des verlinkten Element einbetten? Allgemeine Java-Themen 4
A Element für Preferences Page Allgemeine Java-Themen 3
T Element aus Vector entfernen Allgemeine Java-Themen 4
J Tree indexieren, Element-Indexierung Allgemeine Java-Themen 2
A Queue, beim dem das letzte Element herausfällt Allgemeine Java-Themen 4
I ArrayList mit einem aktiven Element Allgemeine Java-Themen 7
M Wie heißt denn dieses grafische Element ? Allgemeine Java-Themen 2
K Kein schließendes Tag bei leerem Element mit JDOM Allgemeine Java-Themen 8
E JTree - einzelnes Element (Knoten) editieren Allgemeine Java-Themen 2
B JList Element Auswahl Allgemeine Java-Themen 2
N Array Element vom Typ eines Objekts zeigt auf ein anderes A. Allgemeine Java-Themen 4
Ark Kubische Suche um ein Element in array[][][] Allgemeine Java-Themen 18
D Fehler beim löschen eines Arraylist-element Allgemeine Java-Themen 5
M Erstes Element einer Enumeration ermitteln Allgemeine Java-Themen 6
N Element aus LinkedList löschen Allgemeine Java-Themen 2
C Collection Element ersetzen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben