DOM-Parser - Element im Element an bestimmten Stellen auslesen

Diskutiere DOM-Parser - Element im Element an bestimmten Stellen auslesen im Allgemeine Java-Themen Bereich.
I

icrystaltm

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

Thema: 

DOM-Parser - Element im Element an bestimmten Stellen auslesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Anzeige

Anzeige
Oben