Daten aus Programm in XML Datei speichern

twa

Mitglied
Hey Leute, hab ein Problem mit einem Programm, dass wir für die Schule machen sollen und zwar folgendes:
Wir mussten ein Programm schreiben in dem wir Logs speichern d.h. Mit Datum, Nachricht und User bzw. System..
Diese Logs werden in einer Liste während der Laufzeit gespeichert. Jetz haben wir zusätzlich noch die aufgabe bekommen, dass wir einen Save Button erstellen der diese Liste in eine XML Datei speichert. Meine Frage dabei ist jetzt: Könnte mir irgentwer freundlicherweise eine Klasse erstellen die mir meine Liste in ein XML Dokument speichert?

Hier mein bestehendes Programm:

Datenklasse-ENTRY:

Java:
package system_logging_tool;

import java.util.GregorianCalendar;

public class Entry {

    private GregorianCalendar gc;
    private String text;

    public Entry() {
    }

    public GregorianCalendar getGc() {
        return gc;
    }

    public void setGc(GregorianCalendar gc) {
        this.gc = gc;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

Datenklasse-SYSTEMENTRY
Java:
package system_logging_tool;

public class SystemEntry extends Entry{

    private String system;

    public SystemEntry() {
    }

    public String getSystem() {
        return system;
    }

    public void setSystem(String system) {
        this.system = system;
    }

    @Override
    public String toString() {
        return (system + " : " + getGc().getTime());
    }
}

Datenklasse-USERENTRY

Java:
package system_logging_tool;

public class UserEntry extends Entry{

     private String user;

    public UserEntry() {
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;

    }

    @Override
    public String toString() {
        return (user + " : " + getGc().getTime());
    }
}

GUI

Java:
public class SystemLogFrame extends javax.swing.JFrame {

    GregorianCalendar gc = new GregorianCalendar();

    DefaultComboBoxModel sysCombo = new DefaultComboBoxModel (new String[] {"System1", "System2", "System3"});
    DefaultComboBoxModel usrCombo = new DefaultComboBoxModel (new String[] {"User1", "User2", "User3"});
    Boolean systemMode = true;
    DefaultListModel dlm = new DefaultListModel();
    ArrayList text = new ArrayList();

private void onNewSystemLog(java.awt.event.ActionEvent evt) {                                
        jComboBox1.setModel(sysCombo);
        gc = new GregorianCalendar();
        tfDate.setText(gc.getTime().toString());
        systemMode = false;
    }                               

    private void onUser(java.awt.event.ActionEvent evt) {                        
        jComboBox1.setModel(usrCombo);
        gc = new GregorianCalendar();
        tfDate.setText(gc.getTime().toString());
        systemMode = false;
    }                       

    private void onSave(java.awt.event.ActionEvent evt) {                        
        if(systemMode == true )
        {
            SystemEntry se = new SystemEntry();
            se.setGc(gc);
            se.setSystem(jComboBox1.getSelectedItem().toString());
            text.add(jTextArea1.getText());
            dlm.addElement(se);
        }else{
            UserEntry ue = new UserEntry();
            ue.setGc(gc);
            ue.setUser(jComboBox1.getSelectedItem().toString());
            text.add(jTextArea1.getText());
            dlm.addElement(ue);
        }
        jTextArea1.setText("");
        tfDate.setText("");
    }                       

    private void printToConsole(java.awt.event.ActionEvent evt) {                                
        for (int i = 0; i < dlm.getSize(); i++) {
            System.out.println(""+dlm.get(i)+" : "+text.get(i));
        }
    }                               

    private void onClick(java.awt.event.MouseEvent evt) {                         
        int index = jListSummary.getSelectedIndex();
        int num=0;
        String object = dlm.get(index).toString();
        String type = object.substring(0, 6);
        if(type.equals("System"))
        {
            num = Integer.parseInt(object.valueOf((object.charAt(6))));
            switch(num)
            {
                case 1:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"System1"}));break;
                case 2:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"System2"}));break;
                case 3:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"System3"}));
            }
            tfDate.setText(object.substring(10, 38));
        }
        else
        {
            switch(num)
            {
                case 1:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"User1"}));break;
                case 2:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"User2"}));break;
                case 3:jComboBox1.setModel(new DefaultComboBoxModel (new String[] {"User3"}));
            }
            num = Integer.parseInt(object.valueOf((object.charAt(4))));
            tfDate.setText(object.substring(8, 36));
        }
        jTextArea1.setText(text.get(index).toString());
    }

Programmiert habe ich das ganze in Netbeans 6.9.1, anbei noch ein Screenshot der GUI
 

Anhänge

  • GUI.jpg
    GUI.jpg
    44,2 KB · Aufrufe: 38

fastjack

Top Contributor
Da gibt es verschiedene Möglichkeiten, z.B.:

1. per Hand. Traversiere durch die Liste mit Logs und erzeuge dabei XML in einem StringBuffer oder so. Anschließend speichern, fertig.
2. mit DocumentBuilder. Durch traversieren der Liste mit den Logs den DocumentBuilder füttern, anschließen speichern, fertig.
3. JAXB oder EMF benutzen.

Für diese kleine Aufgabe würde ich eher 1. oder 2. favorisieren, whl. eher 1.
 

twa

Mitglied
Danke für die schnelle Antwort!
Wir müssen die XML Datei laut Angabe vom Lehrer mit dem DocumentBuilder machen und das in einer Klasse EntryListBuilder ..
Da wir eig. noch nicht viel bezüglich XML gelernt haben ist das alles noch etwas unklar für mich, darum wärs echt nett wenn mir wer so eine Klasse machen könnte und ich mich damit auseinandersetzen könnte, würde mir glaub ich am meisten helfen aus dem Quellcode zu lernen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G XML-Daten im Programm verwenden XML & JSON 5
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
A GUI um auf XSD Basis (valide) XML Daten zu erzeugen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
K Login Daten mit JSoup übermitteln XML & JSON 0
M JAXB @XMLID und @XMLIDREF, wie Daten hinzufügen XML & JSON 2
G Jsoup Daten lesen XML & JSON 0
P XML Daten sortieren - Verständnisfrage XML & JSON 4
F Parsen von Daten aus einer Homepage XML & JSON 6
MiMa Verfahrensweise Daten aus dem Internet abfragen XML & JSON 44
M [XSD-Definition] Eindeutige Daten in NodeList (Bereich) XML & JSON 3
K Visualisierung von Daten XML & JSON 13
T Daten in Xml speichern XML & JSON 4
X Am Server ankommende XML Daten verarbeiten XML & JSON 11
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
Mike90 Daten aus DB in ExcelTabelle lesen + bearbeiten + formatieren XML & JSON 2
S Mit welcher Technologie Daten abspeichern? XML & JSON 6
J Daten werden in ArrayList geschrieben, AL nicht in .xml ? XML & JSON 5
O XML-Daten fehlen in der Darstellung XML & JSON 2
I Mit JDOM Daten aus XML in ein Array abfüllen XML & JSON 4
R Daten aus xml lesen und in Strings speichern XML & JSON 4
G XML als "Datenbank" für kleine Daten XML & JSON 2
T [JDOM] XML File, neue Daten hinzufügen XML & JSON 5
D Das Programm hängt etwa 5 Sekunden beim Aufruf der parse-Methode XML & JSON 6
M Problem mit FOP in Java Programm XML & JSON 2
T Tags in XML Datei mit Java erstellen XML & JSON 3
S XML Datei speichern nicht möglich XML & JSON 13
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
MiMa Buch Metadaten aus XML Datei parsen XML & JSON 48
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
R xlsx-Datei mit Apache POI einlesen XML & JSON 18
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
S CSV Datei einlesen und XML Ausgeben XML & JSON 2
U jar Datei mit ant erstellen XML & JSON 1
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
D XML-Datei per Button erstellen XML & JSON 3
K JAR-File mit XML-Datei XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
E JTreedaten in eine XML Datei speichern XML & JSON 3
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
B xsd-Datei ins jar file XML & JSON 5
T Formulardaten in XML Datei speichern XML & JSON 5
H Wsdl datei XML & JSON 2
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
S Neue Inhalte in XML-Datei einfügen XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
J XML - Datei wird nicht ganz angezeigt XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
E ResultSet als XML Datei speichern XML & JSON 7
M XStream, CSV Datei XML & JSON 9
A Frage zu bestehender XML Datei XML & JSON 6
A Simple Constructor Injection Datei-Pfad XML & JSON 6
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
A XML datei lesbar speichern (eingerückt) XML & JSON 7
M XML Datei Parsen XML & JSON 4
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
N Java Code aus XML Datei generieren XML & JSON 8
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
R XLM Datei lesen Ändern (kompliziertes Search and Replace) und Speichern XML & JSON 12
K Kurze XML Datei Parsen XML & JSON 5
S XSD-Datei zulässige Werte auslesen XML & JSON 3
M XML Datei heapspace erreicht XML & JSON 3
M Große Datei auslesen/in dieser suchen XML & JSON 2
S Konforme XML Datei über XSD erstellen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
T Inhalt einer .xml Datei auf Javaoberfläche wiedergeben XML & JSON 4
M XML Datei drucken XML & JSON 8
D XSD Datei erstellen XML & JSON 4
L [SAX] Geschachtelte XML Datei parsen XML & JSON 3
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
G txt. Datei in xml datei konvertieren XML & JSON 21
K XML Datei in ein Java package „einbinden" XML & JSON 3
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
L xml Datei parsen ohne End-Tag XML & JSON 6
C if-Abfrage mit Datei Variable aus XML-Datei XML & JSON 2
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
sylo DOM Document in XML Datei schreiben XML & JSON 5
F XML Datei in Java einlesen XML & JSON 4
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
N MalformedByteSequenceException bei Lesen aus XML Datei XML & JSON 2
H xml-Datei mit Attributen einlesen XML & JSON 3
A XML-Datei: Ab wann kritische Größe erreicht? XML & JSON 4
multiholle XML Datei elegant verarbeiten XML & JSON 14
M XMI-Datei auslesen XML & JSON 4
T Ließt keine XML Datei XML & JSON 2
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben