Hi Walter,

iwie komme ich damit noch nicht ganz klar…
Wo sollte ich das denn einfügen? Als Grundlage meiner Entwicklung dient das Projekt von AB-Finnentrop aus einem der ersten Beiträge.
Kannst du mir das anhand dessen nochmal genauer erklären?

Gruß Dennis

PS: Habe eine GUI für den GPX Konverter gebaut: Hier der Code aus beiden Klassen:

Klasse Translator


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 {
    private String Inputfile;
    private String Outputfile;
    private StreamResult out;
    private TransformerHandler th;
    private AttributesImpl atts;
    private List<String> list;

    public Translator(){
        
    }
    public void setInputFilename(String s){
        Inputfile = s;
        
    }
    public String getInputFilename(){
        return Inputfile;
    }
    
    public void setOutputFilename(String s){
        Outputfile = s;
        
    }
    public String getOutputFilename(){
        return Outputfile;
    }
    
    public List<String> einlesen() {
        
        // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader(Inputfile);
            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
     
        public void translate() {
            list = einlesen();
            try {
                out = new StreamResult(Outputfile);
                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");
            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 boolean start() {
            
        try{
            translate();
            }catch (ArrayIndexOutOfBoundsException ex){
            return false;
        }//    catch ( ex){
//            return false;
//        }
            return true;
          
            
        }
}


Klasse FileChooserTest


import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.io.*;
import javax.swing.*;

public class FileChooserTest extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel jContentPane = null;
    private JTextField InputFileTextfield = null;
    private JTextField OutputFileTextfield = null;
    private JButton jButton = null;
    private JButton jButton1 = null;
    private JButton Generate = null;
    Translator t = new Translator();  //  @jve:decl-index=0:
    

    /**
     * This is the default constructor
     */
    public FileChooserTest() {
        super();
        initialize();
        
    }

    /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() {
        fc.setSize(new Dimension(557, 336));
        this.setSize(661, 248);
        this.setContentPane(getJContentPane());
        this.setTitle("GPS Translator");
        this.setVisible(true);
        
    }

    /**
     * This method initializes jContentPane
     * 
     * @return javax.swing.JPanel
     */
    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jContentPane = new JPanel();
            jContentPane.setLayout(null);
            jContentPane.add(getInputFileTextfield(), null);
            jContentPane.add(getOutputFileTextfield(), null);
            jContentPane.add(getJButton(), null);
            jContentPane.add(getJButton1(), null);
            jContentPane.add(getGenerate(), null);
        }
        return jContentPane;
    }

    /**
     * This method initializes InputFilenameTextfield    
     *     
     * @return javax.swing.JTextField    
     */
    private JTextField getInputFileTextfield() {
        if (InputFileTextfield == null) {
            InputFileTextfield = new JTextField();
            InputFileTextfield.setBounds(new Rectangle(115, 32, 515, 35));
            InputFileTextfield.setText("Bitte wählen sie eine csv Datei aus");
        }
        return InputFileTextfield;
    }

    /**
     * This method initializes OutputFileTextfield    
     *     
     * @return javax.swing.JTextField    
     */
    private JTextField getOutputFileTextfield() {
        if (OutputFileTextfield == null) {
            OutputFileTextfield = new JTextField();
            OutputFileTextfield.setBounds(new Rectangle(117, 106, 512, 36));
            OutputFileTextfield.setText("Bitte wählen sie als Dateiformat .gpx");
        }
        return OutputFileTextfield;
    }

    /**
     * This method initializes jButton    
     *     
     * @return javax.swing.JButton    
     */
    JFileChooser fc = new JFileChooser();  //  @jve:decl-index=0:visual-constraint="90,288"

    private JButton getJButton() {
        if (jButton == null) {
            jButton = new JButton("Input File");
            jButton.setBounds(new Rectangle(8, 27, 100, 39));
            jButton.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                     if (e.getSource() == jButton) {
                            int returnVal = fc.showOpenDialog(FileChooserTest.this);

                            if (returnVal == JFileChooser.APPROVE_OPTION) {
                                File file = fc.getSelectedFile();
                                InputFileTextfield.setText(file.getAbsolutePath());
                                                            
                            }
                     }
                }
            });
        }
        return jButton;
    }

    /**
     * This method initializes jButton1    
     *     
     * @return javax.swing.JButton    
     */
    private JButton getJButton1() {
        if (jButton1 == null) {
            jButton1 = new JButton("Output File");
            jButton1.setBounds(new Rectangle(6, 105, 102, 36));
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                         if (e.getSource() == jButton1) {
                                int returnVal = fc.showOpenDialog(FileChooserTest.this);

                                if (returnVal == JFileChooser.APPROVE_OPTION) {
                                    File file = fc.getSelectedFile();
                                    OutputFileTextfield.setText(file.getAbsolutePath());
                                    
                                }
                         }
                    }
            });
        }
        return jButton1;
    }
    
    public String getInputTextField(){
        return InputFileTextfield.getText();
    }
    
    public String getOutputTextField(){
        return OutputFileTextfield.getText();
    }
    

    /**
     * This method initializes Generate    
     *     
     * @return javax.swing.JButton    
     */
    private JButton getGenerate() {
        if (Generate == null) {
            Generate = new JButton("Generate");
            Generate.setBounds(new Rectangle(494, 167, 129, 38));
            Generate.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    t.setInputFilename(getInputTextField());
                    t.setOutputFilename(getOutputTextField());
                    if (t.getInputFilename().endsWith("csv") || t.getOutputFilename().endsWith("gpx")|| t.getOutputFilename().endsWith("xml")){
                        t.start();    
                        JOptionPane.showMessageDialog(null, "Umwandlung erfolgreich abgeschlossen!", "GPS Translator", JOptionPane.OK_CANCEL_OPTION);
                    }else{
                        JOptionPane.showMessageDialog(null, "Bitte Eingaben kontrollieren und auf Dateiendung achten", "GPS Translator", JOptionPane.OK_CANCEL_OPTION);
                    }
                }
            });
            
        }
        return Generate;
    }

}  //  @jve:decl-index=0:visual-constraint="40,17"