XML einlesen, analysieren, bearbeiten & als Textdatei ausgeben

Status
Nicht offen für weitere Antworten.

SmartGuy

Mitglied
Ich muss aus einer .xml-File z.B. pro OBST die BEERE, APFEL, BIRNE, PFLAUME, TRAUBE auflisten lassen.
Des Weiteren müsste ich pro BEERE alle ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN … auflisten lassen.


Es sollte also wie folgt aussehen:

OBST, BEERE, APFEL, BIRNE, PFLAUME, TRAUBE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
(…)
OBST, BEERE, APFEL, BIRNE, PFLAUME, TRAUBE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
ERDBEERE mit GESCHMACK, GEWICHT, KOSTEN, GROESSE
(…)
(…)

Wenn eine Variable fehlt muss eine Leerzeile mit Komma zwischengesetzt werden. Dies sollte vllt abgefragt werden, z.B. würde das dann so aussehen: bla1, bla2, , bla3


In dem Programm sollte evtl eine Struktur von Hand vorgebbar sein, in der das Kommagetrennte TXT-File ausgegeben wird:
Root: OU
Packages: OBST
Packages_Info: BEERE, APFEL, BIRNE, PFLAUME, TRAUBE, (…)
PackageMembers: ERDBEERE
PackageMembers_Info: GESCHMACK, GEWICHT, KOSTEN, GROESSE, (…)


Soviel zur Aufgabe. Durch meinen besten Freund, der mit g anfängt und mit oogle aufhört :D hab ich zwar nichts optimales, aber wenigstens schon mal ein kleines Bsp gefunden, der eine XML-File einliest. Gibt aber einen Block vier mal aus. Wie man erkennen wird, handelt es sich um JDOM, da die files nur ein paar MB groß sind. Schreiben in ne Textdatei hab ich schon mal gemacht (BufferedWriter etc.)

Java:
package sax;

import java.io.InputStream;
import java.io.StringReader;
import java.io.StringWriter;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class ReaderTest {

    public ReaderTest() {
    }

    public static void main (String args[]) throws Exception {

        /* XMLWriter for viewing SAX events. */
        XMLWriter echo = new XMLWriter();
      
        /* Build document from xml file. */
        SAXBuilder builder = new SAXBuilder();
      
        builder.setXMLFilter(echo);
    
        System.out.println(" -- SAXBuilder(test2.xml), echo by XMLWriter -- \n");
        System.out.println("4");
        Document doc = builder.build("C:/Documents and Settings/GUI4ABT/Desktop/eclipse/workspace/Projekt_XML/src/test2.xml");
        System.out.println("5");
        System.out.println(" -- DocumentReader(doc) output by XMLWriter --\n");
        XMLReader parser = new DocumentReader(doc);
        
        echo.setParent(parser);
        
        StringWriter writer = new StringWriter();
        
        parser = new XMLWriter(echo, writer);
        System.out.println("9");
        parser.parse((InputSource)null);
        System.out.println("10");
        /* Reconstitute document from regurgitated string. */
        builder = new SAXBuilder();
        
        builder.setXMLFilter(echo);
        
        String xml = writer.toString();
        System.out.println("13");
        System.out.println(" -- xml string--\n");
        doc = builder.build(new StringReader(xml));
System.out.println("14");
        System.out.println(" -- SAXBuilder(xml) output by XMLOutputter --\n");
        XMLOutputter outputter = new XMLOutputter();
        System.out.println("15");
        outputter.output(doc, System.out);
System.out.println("16");
        System.out.println("\n");
    }

}



- Kann ich den Code so benutzen und ignorieren, dass er alles 4 mal ausgibt oder gibts ne bessere Lösung für das Einlesen?
- Ich denke, mit ArrayListen bin ich gut dabei. Aber wie unterscheide ich, was was ist?
- Wie muss ich weiter vorgehen?


Danke und Gruß
SmartGuy
 
Zuletzt bearbeitet:

SmartGuy

Mitglied
da ich meinen selbsterstellten Beitrag komischerweise nicht mehr editieren kann, antworte ich einfach :)

Habs jetzt so, dass ich meine XML-File einlese und genau so wieder in der Console ausgebe (siehe unteren Code). Wie kann ich auf die einzelnen Tags zugreifen und vergleichen?

Java:
...
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("C:/test.xml");
XMLOutputter outputter = new XMLOutputter();
outputter.output(doc, System.out);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B XML analysieren und einlesen XML & JSON 26
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
L XML einlesen gleichnamige Elemente XML & JSON 5
T HTML mit Hilfe Jsoup einlesen XML & JSON 11
R xlsx-Datei mit Apache POI einlesen XML & JSON 18
S CSV Datei einlesen und XML Ausgeben XML & JSON 2
W XML einlesen und Attribute auslesen XML & JSON 1
M XML Werte einlesen aber wie am besten weiterverarbeiten? XML & JSON 13
L XML nur ein Element einlesen XML & JSON 2
L Jackson JSON: Probleme beim einlesen XML & JSON 1
S XML in JTable Einlesen XML & JSON 3
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
Ollek XML Einlesen - Welche API ist die richtige? XML & JSON 14
X XML einlesen XML & JSON 6
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
jstei001 .xsd File wärend der Laufzeit einlesen und XMl rausschreiben XML & JSON 5
J XML mit russischem Inhalt einlesen XML & JSON 4
D XML Einlesen mit JaxB XML & JSON 4
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
B SAX-Parser - Dokumente einlesen und in einer Map ablegen XML & JSON 2
N xsd pattern in java einlesen XML & JSON 6
F Einlesen von JDBC connection in Java von XML XML & JSON 4
J wert IN einem tag einlesen/schreiben XML & JSON 4
F XML erzeugen aus JTree und wieder einlesen... XML & JSON 6
N JDOM: XML einlesen XML & JSON 4
F XML mit DOM einlesen- Teile in Arraylist speichern XML & JSON 4
S XML einlesen XML & JSON 18
F XML Datei in Java einlesen XML & JSON 4
H XMI über EMF / UML2 einlesen XML & JSON 7
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
H xml-Datei mit Attributen einlesen XML & JSON 3
C xml "zeilenweise" einlesen XML & JSON 6
B XML einlesen und in Datenbank schreiben XML & JSON 1
S XML-Schema einlesen um parsen zu erleichtern? XML & JSON 2
L Element einlesen <Telefon name="Karl">134313 XML & JSON 2
G XML Tag beim Einlesen manipulieren XML & JSON 2
J XML-Datei ein Array einlesen XML & JSON 10
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
M Liste in Baumstruktur einlesen XML & JSON 4
D nicht (ganz) valiedes XML einlesen! XML & JSON 19
S Einlesen einer xml Datei XML & JSON 4
S XML Datei einlesen, aber root überspringen XML & JSON 2
M XML einlesen - prüfen ob Element vorhanden XML & JSON 2
M NullPointerException bei Einlesen XML XML & JSON 3
J XML - schreiben und einlesen (Schema) XML & JSON 14
S XML Strings in JAVA einlesen, aber wie? XML & JSON 8
K JDOM SAXBuilder einlesen XML & JSON 6
G Newbe - Frage.XML - Datei einlesen und speichern XML & JSON 2
G xml einlesen und bestimmte Elemente an eine gui_Klasse überg XML & JSON 25
B XML String einlesen XML & JSON 4
M mit JDOM XML-Datei einlesen, die nicht "well-formed&quo XML & JSON 3
T Newbie Frage. CSS Stylesheet einlesen und suchen nach Tags XML & JSON 6
P OutOfMemoryError beim Einlesen einer XML-Datei XML & JSON 7
C Zeile herausfinden in der ein Fehler beim Einlesen entsteht XML & JSON 3
R wie kann ich ein xml file in einen string einlesen? XML & JSON 2
N Objekte via XML speichern und wieder einlesen XML & JSON 12
R POST REQUEST: XmlDocument mit getInputStream einlesen! XML & JSON 6
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
K Wie xml bearbeiten XML & JSON 5
Z XML Bearbeiten ISO 8859-15 XML & JSON 16
M Wie kann ich eine unter SAX eingelesene XML bearbeiten? XML & JSON 4
F Hilfe beim bearbeiten von XML elemente XML & JSON 3
M XML in Jtree bearbeiten XML & JSON 2
Mike90 mit POI xls bearbeiten XML & JSON 10
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
Mike90 Daten aus DB in ExcelTabelle lesen + bearbeiten + formatieren XML & JSON 2
G XML-Datei durch Ausführen des JAR-Reciepe bearbeiten XML & JSON 19
N XML effizient darstellen und bearbeiten XML & JSON 9
B XML öffnen, bearbeiten, speichern ohne JDOM XML & JSON 4

Ähnliche Java Themen


Oben