Guten Abend allerseits!
Ich muss für mein Medieninformatik-Studium eine Aufgabe mit XStream lösen.
Die Aufgabe lautet wie folgt:
Schreiben Sie eine Methode, die eine Adressenliste aus einer CSV-Datei liest und dann mit Hilfe von XStream in eine XML-Datei schreibt.
Problem: Ich habe noch nie zuvor XStream verwendet, wir sollten es uns quasi im Selbststudium mit dem Two Minute Tutorial beibringen XStream - Two Minute Tutorial
Ich habe die Bibliothek schon in Eclipse eingebunden und versucht, die Aufgabe zu lösen. Leider ohne Erfolg. Ehrlich gesagt habe ich nicht genau verstanden, wie XStream funktioniert und vor allem, wo ich denn die erstellte XML Datei finde.
Meine CSV Datei sieht so aus:
10115,Berlin,Proskauerstrasse,4
10112,Bonn,Vogelstrasse,11
11212,Hamburg,Amselweg,23
91212,Hannover,Helmstedertstrasse,76
10345,Buckow,Eichenstrasse,16
18982,Beelitz,Mariaerstrasse,12
10115,Stuttgart,Ebertstrasse,33
10234,Rosenheim,Bundestagstrasse,50
13545,Wiesbaden,Ahornweg,101
13545,Mainz,Hauptstrasse,103
Ich habe in einer vorherigen Aufgabe schonmal aus der CSV Datei gelesen und alle Daten in ein Adressen-Array gepackt:
Außerdem gibt es die Klasse "Adresse":
Und schließlich mein bescheidener Versuch, die Methode zu schreiben:
Ich hoffe, dass die Informationen ausreichen, um mein Problem nachvollziehen zu können
Ich muss für mein Medieninformatik-Studium eine Aufgabe mit XStream lösen.
Die Aufgabe lautet wie folgt:
Schreiben Sie eine Methode, die eine Adressenliste aus einer CSV-Datei liest und dann mit Hilfe von XStream in eine XML-Datei schreibt.
Problem: Ich habe noch nie zuvor XStream verwendet, wir sollten es uns quasi im Selbststudium mit dem Two Minute Tutorial beibringen XStream - Two Minute Tutorial
Ich habe die Bibliothek schon in Eclipse eingebunden und versucht, die Aufgabe zu lösen. Leider ohne Erfolg. Ehrlich gesagt habe ich nicht genau verstanden, wie XStream funktioniert und vor allem, wo ich denn die erstellte XML Datei finde.
Meine CSV Datei sieht so aus:
10115,Berlin,Proskauerstrasse,4
10112,Bonn,Vogelstrasse,11
11212,Hamburg,Amselweg,23
91212,Hannover,Helmstedertstrasse,76
10345,Buckow,Eichenstrasse,16
18982,Beelitz,Mariaerstrasse,12
10115,Stuttgart,Ebertstrasse,33
10234,Rosenheim,Bundestagstrasse,50
13545,Wiesbaden,Ahornweg,101
13545,Mainz,Hauptstrasse,103
Ich habe in einer vorherigen Aufgabe schonmal aus der CSV Datei gelesen und alle Daten in ein Adressen-Array gepackt:
Java:
public class Adressen {
public static List<Adresse> createAdresslistFromCSV(Scanner in, char seperator) {
File file = new File("testCSV.csv");
Character sep = new Character(seperator);
List<Adresse> adressen = new ArrayList<Adresse>();
try {
in = new Scanner(file);
} catch (FileNotFoundException e) {
System.out.println("Datei kann nicht gefunden werden !");
}
String strassenname = "";
int hausnr = 0;
int plz = 0;
String ort = "";
while(in.hasNext() ) {
String line = in.nextLine();
String[] readAdress = line.split(sep.toString());
plz = Integer.parseInt(readAdress[0]);
ort = (readAdress[1]);
strassenname = readAdress[2];
hausnr = Integer.parseInt(readAdress[3]);
adressen.add(new Adresse(plz, ort, strassenname, hausnr));
}
System.out.println(adressen.toString());
return adressen;
}
...
}
Außerdem gibt es die Klasse "Adresse":
Java:
public class Adresse {
protected int plz;
protected String ort;
protected String strassenname;
protected int hausnr;
public Adresse(int plz, String ort, String strassenname, int hausnr){
this.plz = plz;
this.ort = ort;
this.strassenname = strassenname;
this.hausnr = hausnr;
}
public Adresse (Adresse adr){
this(adr.plz, adr.ort, adr.strassenname, adr.hausnr);
}
...
Und schließlich mein bescheidener Versuch, die Methode zu schreiben:
Java:
public static void CSVtoXML(String csvPath) {
Scanner sc = new Scanner(csvPath);
Adresse[] adresses = (Adresse[]) Adressen.createAdresslistFromCSV( sc, ',').toArray();
String xml = null;
for(Adresse a: adresses) {
xs.alias("adresse", Adresse.class);
xml = xs.toXML(a);
}
}
Ich hoffe, dass die Informationen ausreichen, um mein Problem nachvollziehen zu können
Zuletzt bearbeitet von einem Moderator: