JAXB zu DOM

Diskutiere JAXB zu DOM im Allgemeine Java-Themen Forum; Hallo, und zwar hab ich die Aufgabe, in einem Programm JAXB durch DOM zu ersetzen. Ich habe eine XML, die tausende von Zeilen groß ist, das heißt...

  1. Benutzer187
    Benutzer187 Mitglied
    Hallo,
    und zwar hab ich die Aufgabe, in einem Programm JAXB durch DOM zu ersetzen.

    Ich habe eine XML, die tausende von Zeilen groß ist, das heißt ich kann die einzelnden Attribute usw. nicht einzelnd holen und auch später wieder erstellen.
    Mir fällt nun aber nichts ein, wie ich automatisieren kann, dass das Ganze für mich automatisch, für jedes Attribut durchläuft und trotzdem alle Attribute setzt, obwohl ich diese nicht einzelnd angebe.
    Vielleicht kann mir jemand weiterhelfen?
     
  2. Java online lernen
  3. Flown
    Flown Administrator Mitarbeiter
    Wie bitte? Kannst du ein Beispiel geben und was du wirklich machen musst?
     
  4. Benutzer187
    Benutzer187 Mitglied
    Ich habe ein Programm, welches zur Zeit zum xml parsen, JAXB nutzt. Ich soll nun, diese JAXB-Funktionalität mit dem DOM Parser ablösen.
    Ich habe eine xml datei, aus der ich die Attribute und Elemente lesen möchte, um mit diesen weiterarbeiten zu können. Da meine xml Datei zu groß ist, um jedes Attribut mit getAttribute("") einzelnd zu holen muss ich es automatisieren, dass alle Elemente und Attribute durch "wenige" Zeilen gelesen bzw. gegettet werden.

    //Sorry wenns immernoch unverständlich ist.
     
  5. Flown
    Flown Administrator Mitarbeiter
    Schau dir doch mal XPath an, das könnte genau das sein, was du brauchst. Oder wenn du nur wenige Zeilen rausholen möchtest, dann wäre für dich ein Stream Parser eventuell interessant.
     
  6. Benutzer187
    Benutzer187 Mitglied
    Das möchte ich ja genau nicht. Ich möchte jedes einzelnde Element und Attribut in jeder einzelnden Zeile rausholen, ohne den Namen der Elemente und Attribute angeben zu müssen.
     
  7. httpdigest
    httpdigest Bekanntes Mitglied
    Du möchtest nicht DOM verwenden (das ganze Dokument erstmal in den Speicher laden und dann verarbeiten), sondern eher SAX (Simple API for XML). Lies dir mal folgende Seite durch:
    https://www.journaldev.com/1198/java-sax-parser-example

    EDIT: Einfacheres Beispiel:
    Code (Java):
    import java.io.File;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;

    class SomeHandler extends DefaultHandler {
      @Override
      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        System.out.println("Element start: " + qName);
      }
      @Override
      public void endElement(String uri, String localName, String qName) throws SAXException {
        System.out.println("Element end: " + qName);
      }
      @Override
      public void characters(char ch[], int start, int length) throws SAXException {
        System.out.println("Text: " + new String(ch, start, length));
      }
    }
    public class XMLParserSAX {
      public static void main(String[] args) throws Exception {
        SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
        SAXParser saxParser = saxParserFactory.newSAXParser();
        SomeHandler handler = new SomeHandler();
        saxParser.parse(new File("some.xml"), handler);
      }
    }
     
    Zuletzt bearbeitet: 14. Jan. 2019
    Benutzer187 gefällt das.
  8. Flown
    Flown Administrator Mitarbeiter
    Was machst du dann damit?
     
  9. Benutzer187
    Benutzer187 Mitglied
    Möglicherweise modifizieren und dann erneut die xml, mit vielleicht geänderten Werten, erstellen.
     
  10. Flown
    Flown Administrator Mitarbeiter
    Dann würde ich dir DOM + XPath empfehlen.
     
    Benutzer187 gefällt das.
  11. Java online lernen
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

JAXB zu DOM - Ähnliche Themen

JAXB mit mehreren zusammenhängenden .xsd-Files
JAXB mit mehreren zusammenhängenden .xsd-Files im Forum XML und Co.
XML Datei einlesen (JAXB?)
XML Datei einlesen (JAXB?) im Forum Java Basics - Anfänger-Themen
JAXB: Überflüssiges Wrapper-Tag für Map-Einträge
JAXB: Überflüssiges Wrapper-Tag für Map-Einträge im Forum XML und Co.
JAXBContext / UnmarshalException / Content is not allowed in prolog / encoding="iso-8859-15"
JAXBContext / UnmarshalException / Content is not allowed in prolog / encoding="iso-8859-15" im Forum Java Basics - Anfänger-Themen
JAXB mit Map und Color
JAXB mit Map und Color im Forum XML und Co.
Thema: JAXB zu DOM