docx4j - Ersatz für getJaxbElement

Dieses Thema docx4j - Ersatz für getJaxbElement im Forum "Allgemeine Java-Themen" wurde erstellt von stroggi, 21. Dez. 2016.

Thema: docx4j - Ersatz für getJaxbElement Hi zusammen, nach langer Abwesenheit bin ich mal wieder hier im Forum unterwegs und starte auch wieder aktiv in der...

  1. stroggi
    stroggi Neues Mitglied
    Hi zusammen,

    nach langer Abwesenheit bin ich mal wieder hier im Forum unterwegs und starte auch wieder aktiv in der Java-Programmierung.

    Vor etlichen Jahren hatte ich ein Programm geschrieben, welches Tabellen aus einem Textdokument analysiert (Termine) und anhand der Daten eine Liste mit den enthaltenen Terminen erstellt. Dieses Programm hatte ich nun durch Verwendung der Bibliothek "docx4j" in der Version 3.3.1 erweitert um auch (bzw. mittlerweile ausschließlich) docx-Dateien als Eingabedateien zu verwenden.

    Um die XML-Daten der Datei auszuwerten verwende ich folgenden Code:
    Code (Java):
    WordprocessingMLPackage wordMLPackage = null;

    try {
        wordMLPackage = Docx4J.load(file);

        MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
        org.docx4j.wml.Document wmlDocumentEl = (org.docx4j.wml.Document) documentPart.getJaxbElement();
        Body body = wmlDocumentEl.getBody();
       
        for (Event e : docxParser.parse(body, this)) {
            vEvent.add(e);
        }
    } catch (Docx4JException e) {
        System.err.println("UPS! - Docx4JException");
        e.printStackTrace();
    }
    Nun nörgelt Eclipse ja leider herum, dass die Funktion getJaxbElement deprecated ist, allerdings kann ich keine "Ersatzfunktion" finden mit der ich die Elemente der Datei erhalten kann. Ist jetzt nicht so dringend, da es ja (noch) funktioniert und ich "nur" eine Warnung angezeigt bekomme, allerdings versuche ich in meinem Code immer alle Warnungen zu entfernen und diese hier stört mich eben noch...

    Würde mich freuen, wenn mir einer von euch hier weiterhelfen kann.

    Viele Grüße
    stroggi
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
  3. X5-599
    X5-599 Aktives Mitglied
    Ich kenne diese Library nicht. Aber nach ein wenig Code studieren meine ich du könntest die Methode: getContents() statt getJaxbElement() aufrufen. Im JavaDoc von getJaxbElement wird auch darauf hingewiesen.
    Die getJaxbElement Methode ruft ihrerseit auch nur die getContents Methode auf. Umgeben von einem try/catch. Bei einer Docx4JException gibt getJaxbElement null zurück.

    Also, wie oben erwähnt: Ich würde sagen du kannst einfach getContents() aufrufen. Die Docx4JException fängst du ja schon ab; sollte so funktionieren.
    Bitte beachten: Ich erwähne nochmal, dass ich diese Library nicht kenne und darum auch niemals benutzt habe. Alle Angaben sidn ohne Gewähr. Viel Erfolg.
     
    stroggi gefällt das.
  4. stroggi
    stroggi Neues Mitglied
    Danke für den Hinweis. Da hab ich den Wald wieder vor lauter Bäumen nicht gesehen.
    Funktioniert einwandfrei.
     
  5. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)