Guten Abend alle zusammen,
ich bin gerade dabei ein Programm zu schreiben, was .csv-Dateien auslesen kann und deren Inhalt in .xml-Dateien abspeichert. Das Einzige, was dabei jedoch herauskommt, ist:
Hier ist der entsprechende Codeteil:
Ich hatte auch schon den Thread hier zu Rate gezogen, aber ich finde den Fehler trotzdem nicht: http://www.tutorials.de/java/179102-java-aus-2-arrays-xml-datei-erzeugen.html
Das Einlesen der Daten aus der .csv-Datei funktioniert einwandfrei, lediglich das Schreiben will nicht so recht funktionieren...
Ich wäre sehr froh über jede Art von Hilfe
Gruß Devilness
ich bin gerade dabei ein Programm zu schreiben, was .csv-Dateien auslesen kann und deren Inhalt in .xml-Dateien abspeichert. Das Einzige, was dabei jedoch herauskommt, ist:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Team/>
Hier ist der entsprechende Codeteil:
Code:
if("newkay".equals(e.getActionCommand())) {
// Erstellen neuer Datei
String getVar = input.getText();
System.out.println(getVar);
String path = "./CSV/" + comboVar;
System.out.println(path);
String[] ppos;
String[] pname;
String[] page;
String[] pstr;
String[] pexp;
String[] ptrain;
String[] pawp;
int counter;
try { // Datei lesen (.csv)
Scanner scan = new Scanner(new File(path));
counter = -1;
while(scan.hasNextLine()) {
scan.nextLine();
counter++;
}
System.out.println(counter);
Scanner scanner = new Scanner(new File(path));
ppos = new String[counter];
pname = new String[counter];
page = new String[counter];
pstr = new String[counter];
pexp = new String[counter];
ptrain = new String[counter];
pawp = new String[counter];
System.out.println(pawp.length);
counter = -1;
while(scanner.hasNextLine()) {
if(counter < 0) {
System.out.println("Scanvorgang gestartet.");
scanner.nextLine();
counter++;
} else {
String current = scanner.nextLine();
String[] splitted = new String[7];
splitted = current.split(";");
ppos[counter] = splitted[0];
page[counter] = splitted[2];
pstr[counter] = splitted[3];
pexp[counter] = splitted[4];
ptrain[counter] = splitted[5];
pawp[counter] = splitted[6];
System.out.println(splitted[1]);
String[] splitted_2 = new String[3];
splitted_2 = splitted[1].split("\"");
System.out.println(splitted_2[1]);
pname[counter] = splitted_2[1]; // Alle Werte in Arrays gelagert
}
}
// Datei schreiben (.xml)
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
//root elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("Team");
doc.appendChild(rootElement);
for (int c = 0; c < counter; c++) {
//player elements
Element player = doc.createElement("Spieler");
rootElement.appendChild(player);
player.setAttribute("name", pname[ c]);
player.setAttribute("pos", ppos[ c]);
for (int d = 0; d < 5; d++) {
if(d == 0) {
//valueType elements
Element valueType = doc.createElement("Werttyp");
player.appendChild(valueType);
valueType.setAttribute("type", "Alter");
//lastname elements
Element val = doc.createElement("Wert");
val.appendChild(doc.createTextNode(page[ c]));
valueType.appendChild(val);
}else if(d == 0) {
//valueType elements
Element valueType = doc.createElement("Werttyp");
player.appendChild(valueType);
valueType.setAttribute("type", "Stärke");
//lastname elements
Element val = doc.createElement("Wert");
val.appendChild(doc.createTextNode(pstr[ c]));
valueType.appendChild(val);
}else if(d == 0) {
//valueType elements
Element valueType = doc.createElement("Werttyp");
player.appendChild(valueType);
valueType.setAttribute("type", "Erfahrung");
//lastname elements
Element val = doc.createElement("Wert");
val.appendChild(doc.createTextNode(pexp[ c]));
valueType.appendChild(val);
}else if(d == 0) {
//valueType elements
Element valueType = doc.createElement("Werttyp");
player.appendChild(valueType);
valueType.setAttribute("type", "Training");
//lastname elements
Element val = doc.createElement("Wert");
val.appendChild(doc.createTextNode(ptrain[ c]));
valueType.appendChild(val);
}else if(d == 0) {
//valueType elements
Element valueType = doc.createElement("Werttyp");
player.appendChild(valueType);
valueType.setAttribute("type", "AWP");
//lastname elements
Element val = doc.createElement("Wert");
val.appendChild(doc.createTextNode(pawp[ c]));
valueType.appendChild(val);
}
}
}
//write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("./XML/"+getVar+".xml"));
transformer.transform(source, result);
System.out.println("Done");
} catch(FileNotFoundException e2) {
e2.printStackTrace();
} catch(ParserConfigurationException e2){
e2.printStackTrace();
} catch(TransformerException e2){
e2.printStackTrace();
} catch (TransformerFactoryConfigurationError e2) {
e2.printStackTrace();
}
System.out.println("Okay");
newIntFrame.setVisible(false);
} else if("can".equals(e.getActionCommand())) {
// "Schließen" des InFrames
System.out.println("Cancel");
newIntFrame.setVisible(false);
}
Ich hatte auch schon den Thread hier zu Rate gezogen, aber ich finde den Fehler trotzdem nicht: http://www.tutorials.de/java/179102-java-aus-2-arrays-xml-datei-erzeugen.html
Das Einlesen der Daten aus der .csv-Datei funktioniert einwandfrei, lediglich das Schreiben will nicht so recht funktionieren...
Ich wäre sehr froh über jede Art von Hilfe
Gruß Devilness