Hallo, 
ich habe eine Klasse DataOperations die via JFileChooser eine .csv einliest und auf der Konsole als halbe .xml ausgibt. Jetzt würde ich gerne die Halbe .xml zu einer ganzen machen, mit den <?xml version="1.0" encoding="UTF-8" standalone="yes"?> im Kopf und dann seperat abspeichern als .xml.
Würde mich über Lösungsvorschläge freuen. Gruß
ich habe eine Klasse DataOperations die via JFileChooser eine .csv einliest und auf der Konsole als halbe .xml ausgibt. Jetzt würde ich gerne die Halbe .xml zu einer ganzen machen, mit den <?xml version="1.0" encoding="UTF-8" standalone="yes"?> im Kopf und dann seperat abspeichern als .xml.
Würde mich über Lösungsvorschläge freuen. Gruß
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
public class DataOperations {
File file;
public File open(){
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Datei öffnen");
fc.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".csv") || f.isDirectory();
}
public String getDescription() {
return "Comma-Separated Values(*.csv)";
}
});
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
System.out.println(file.getAbsolutePath());
return file;
}
else System.out.println("Keine Auswahl");
System.exit(0);
return null;
}
private ArrayList<String> list = new ArrayList<String>();
private String[] split = null;
public void readData() {
try {
FileReader fileRe = new FileReader(open().getAbsolutePath());
BufferedReader data = new BufferedReader(fileRe);
StringBuilder xml = new StringBuilder();
String lineBreak = System.getProperty("line.separator");
String line = null;
ArrayList<String> headers = new ArrayList<String>();
boolean isHeader = true;
int count = 0;
int entryCount = 1;
xml.append("<root>");
xml.append(lineBreak);
while ((line = data.readLine()) != null) {
split = line.split(";");
StringTokenizer tokenizer = new StringTokenizer(line, ";");
for(int i=0; i<split.length; i++) {
//leere Zeilen ignorieren
if( !(split[i].equals("")) )
//eventuelle Leerzeichen zwischen zwei ';' entfernen
//und Wert in Liste schreiben
list.add(split[i].trim());
}
if (isHeader) {
isHeader = false;
while (tokenizer.hasMoreTokens()) {
headers.add(tokenizer.nextToken());
}
} else {
count = 0;
xml.append("\t<entry id=\"");
xml.append(entryCount);
xml.append("\">");
xml.append(lineBreak);
while (tokenizer.hasMoreTokens()) {
xml.append("\t\t<");
xml.append(headers.get(count));
xml.append(">");
xml.append(tokenizer.nextToken());
xml.append("</");
xml.append(headers.get(count));
xml.append(">");
xml.append(lineBreak);
count++;
}
xml.append("\t</entry>");
xml.append(lineBreak);
entryCount++;
}
}
xml.append("</root>");
System.out.println(xml.toString());
} catch (FileNotFoundException e) {
System.out.println("Datei nicht gefunden");
} catch (IOException e) {
System.out.println("E/A-Fehler");
}
}
public void save(){
JFileChooser JFilespeichern = new JFileChooser();
JFilespeichern.setDialogTitle("Speichern unter");
JFilespeichern.showSaveDialog(null);
}
}