import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
public class translator {
public List<String> translator() {
// Einlesen des Files und spliten
FileReader myFile = null;
BufferedReader buff = null;
final List<String> lines = new ArrayList<String>();
try {
myFile = new FileReader("Test.csv");
buff = new BufferedReader(myFile);
String line;
while ((line = buff.readLine()) != null) {
// System.out.println(line); // kontrolle was eingelesen
lines.add(line);
}
} catch (IOException e) {
System.err.println("Error2 :" + e);
} finally {
try {
buff.close();
myFile.close();
} catch (IOException e) {
System.err.println("Error2 :" + e);
}
}
final String[][] valuesArray = new String[lines.size()][];
int cnt = 0;
for (final String line : lines) {
valuesArray[cnt++] = line.split(",");
}
return lines;
}
//Umwandeln der Liste in GPX(XML) Code
private StreamResult out;
private TransformerHandler th;
private AttributesImpl atts;
List<String> list = translator();
public translator() {
try {
out = new StreamResult("data.xml");
initXML();
for (String str : list) {
process(str);
}
closeXML();
} catch (TransformerConfigurationException ex) {
Logger.getLogger(translator.class.getName()).log(Level.SEVERE, null, ex);
} catch (SAXException ex) {
Logger.getLogger(translator.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void initXML() throws TransformerConfigurationException, SAXException {
SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
th = tf.newTransformerHandler();
Transformer serializer = th.getTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
// pretty XML output:
serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
th.setResult(out);
th.startDocument();
atts = new AttributesImpl();
th.startElement("", "", "gpx", atts);
}
private void process(final String s) throws SAXException {
String[] elements = s.split(";");
atts.clear();
atts.addAttribute("", "", "lat", "", "" + elements[3]);
atts.addAttribute("", "", "lon", "", "" + elements[4]);
th.startElement("", "", "wpt", atts);
atts.clear();
th.startElement("", "", "name", atts);
String name = "Cell-ID: " + elements[2];
th.characters(name.toCharArray(), 0, name.length());
th.endElement("", "", "name");
th.startElement("", "", "cmt", atts);
th.characters(elements[0].toCharArray(), 0, elements[0].length());
th.endElement("", "", "cmt");
th.startElement("", "", "desc", atts);
String desc = "Standortname: " + elements[1] + "\r\n"+ "Netztyp: " + elements[0] + "\r\n" + "Releasecause: " + elements[5] + " Anzahl: " + elements[6];
th.characters(desc.toCharArray(), 0, desc.length());
th.endElement("", "", "desc");
th.endElement("", "", "wpt");
}
private void closeXML() throws SAXException {
th.endElement("", "", "gpx");
th.endDocument();
}
public static void main(final String args[]) {
translator toXML = new translator();
}
}