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 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.)
- 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
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 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: