Hallo zusammen 
Ich hab zur Zeit ein Vorpraktikum und stecke bei einer Aufgabe fest: Eine CSV Datei in Java einlesen, dann in eine Java Swing Tabelle umwandeln, dann die Tabelle in eine XML Datei umwandeln wenn man auf ein Button klickt, dann Tags für die Spalten in der XML Datei erstellen.
Ich finde, dass diese Aufgabe sehr schwer ist, besonders für jmdn, der ein Praktikum sucht, weil mir das alles neu ist, aber ich hab es bis XML Datei geschafft; bei den Tags komme ich nicht weiter.
Ich wäre für jede Hilfe sehr dankbar.
Ich hab zur Zeit ein Vorpraktikum und stecke bei einer Aufgabe fest: Eine CSV Datei in Java einlesen, dann in eine Java Swing Tabelle umwandeln, dann die Tabelle in eine XML Datei umwandeln wenn man auf ein Button klickt, dann Tags für die Spalten in der XML Datei erstellen.
Ich finde, dass diese Aufgabe sehr schwer ist, besonders für jmdn, der ein Praktikum sucht, weil mir das alles neu ist, aber ich hab es bis XML Datei geschafft; bei den Tags komme ich nicht weiter.
Ich wäre für jede Hilfe sehr dankbar.
Java:
import java.awt.*;
import java.awt.event.*;
import java.beans.XMLEncoder;
import java.io.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.metadata.IIOMetadataNode;
import javax.swing.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
class Ubuntu extends JDialog {
int lineNumber = 0;
String path = "ubuntu.csv";
String line = "";
JTable table;
JFrame frame;
JButton toXML;
XMLEncoder encoder;
private Object data;
public Ubuntu() {}
public void init() throws IOException, ParserConfigurationException, SAXException{
frame = new JFrame();
frame.setTitle("UBUNTU");
String[] columnNames = {"", "", "", "", "", "", "", ""};
BufferedReader br = new BufferedReader(new FileReader(path));
List<List<String>> values = new ArrayList<>();
while ((line = br.readLine()) != null) {
ArrayList<String> row = new ArrayList<>();
lineNumber++;
for (String s : line.split(",")) {
row.add(s);
}
values.add(row);
}
String[][] data = new String[values.size()][];
for (int i = 0; i < values.size(); i++) {
data[i] = new String[values.get(i).size() + 2];
for (int j = 0; j < values.get(i).size(); j++) {
data[i][j] = values.get(i).get(j);
}
}
table = new JTable(data, columnNames);
table.setFillsViewportHeight(true);
table.setBounds(30, 40, 200, 300);
JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane);
frame.setSize(800, 600);
toXML = new JButton("To XML");
toXML.setSize(100, 30);
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder;
docBuilder = docBuilderFactory.newDocumentBuilder();
String xmlData = "";
xmlData = xmlData + "<?xml version=\"1.0\"?>\n" + "<data>\n";
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < 8; j++) {
xmlData = xmlData + data[i][j] + "\n";
}
}
xmlData = xmlData + "</data>";
Document doc = docBuilder.parse(new InputSource(new StringReader(xmlData)));
NodeList nodes = doc.getElementsByTagName("string");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
doc.renameNode(node, null, "teeeeeeeest");
Element element = (Element) node;
element.setAttribute("string", "test");
element.setAttribute("string", "test2");
element.setAttribute("string", "test3");
}
// for (int i = 0; i < data.length; i++) {
// for (int j = 0; j < 8; j++) {
//// Element newNode = doc.createElement(data[i][j]);
////
//// doc.appendChild(newNode);
//// Node y = (Node) doc.getElementsByTagName(columnNames[j]);
//// doc.replaceChild(newNode, y);
// Element x = null;
// Element newNode = doc.createElement("test1");
// Element newTitle = doc.createElement("test2");
// Text newText = doc.createTextNode("test3");
//
//
// newTitle.appendChild(newText);
//
// newNode.appendChild(newTitle);
//
// Element y=doc.getElementsByTagName("book")[0];
//
// x.replaceChild(newNode,y);
// }
// }
toXML.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(toXML)){
try {
encoder = new XMLEncoder(new FileOutputStream("ubuntuInXML.xml"));
encoder.writeObject(data);
encoder.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
JOptionPane.showMessageDialog(frame, "XML Datei erfolgreich erstellt! Endlich :-)");
}
}
});
frame.setVisible(true);
frame.add(toXML, BorderLayout.SOUTH);
}
public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
Ubuntu u = new Ubuntu();
u.init();
}
}