Thema: XML Datei mit JDOM erstellen und bearbeiten - Problem: Struktur wird nicht gespeichert!

  • Antworten:6
  • Bentwortet
Can Erdener Yazar
  • Forum-Beiträge: 57

15.03.2016, 16:43:47 via Website

Hallo Community,

ich versuche mit JDOM eine XML-Datei zu erstellen.
Mein Problem ist, dass die Datei zwar erzeugt, aber nicht beschrieben wird.

Die Code ist wie folgt:

    File counters_datei = new File(getFilesDir(), "counters.xml");
    if(!counters_datei.exists()){ // Existiert die Datei nicht, dann neu erstellen.
        try {
            counters_datei.createNewFile();
            counters_datei.setWritable(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    try {
        Document counters_doc = new SAXBuilder().build(counters_datei);
        Element rootElement = new Element("counters").setText("ABC");
        counters_doc.setRootElement(rootElement);

        Element test = new Element("test");
        test.setText("inhalt");
        rootElement.addContent(test);

        // XML Datei schreiben
        XMLOutputter xmlOutputter = new XMLOutputter();
        xmlOutputter.setFormat(Format.getPrettyFormat());
        xmlOutputter.output(counters_doc, new FileWriter(counters_datei));

    } catch (JDOMException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Kann jemand sehen, wo das Problem ist?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.03.2016, 17:07:55 via Website

Du hast die Permission gesetzt um Files schreiben zu können?
Auf welchem System Testest du (Android 6.x+?)

Gibt es eine Exception in logCat welche den Fehler näher einschränken lässt?

Kannst du statt den FileWriter ein System.out einbauen und scauen ob das XML dann in der Log ausgabe erscheint?

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Can Erdener Yazar

Antworten
Can Erdener Yazar
  • Forum-Beiträge: 57

15.03.2016, 19:36:20 via Website

Hallo Pascal,

tut mir leid für die Verspätung.

Die Androidversion ist 5.1.1
Eine Exception konnte ich nich finden.

und diese Code funktioniert:

        File counters_datei = new File(getFilesDir(), "counters.xml");
    if(!counters_datei.exists()){ // Existiert die Datei nicht, dann neu erstellen.
        try {
            counters_datei.createNewFile();
            counters_datei.setWritable(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    try {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(counters_datei));
        bufferedWriter.write("ABC");
        bufferedWriter.newLine();
    } catch (Exception e) {
        e.printStackTrace();
    }

Den Projekt lade ich hier hoch:
https://drive.google.com/open?id=0Bzob8rCFosq_dzM3Y0VDVTRHYkE

Beste Grüße

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.03.2016, 20:01:31 via App

Ich schau mir das mal an.

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Can Erdener Yazar

Antworten
Can Erdener Yazar
  • Forum-Beiträge: 57

16.03.2016, 05:28:38 via Website

Hallo Pascal,

es hat geklappt:

        // XML - DATEI
    try {
        File counters_datei = new File(getFilesDir(), "counters.xml");
        if (!counters_datei.exists()) { // Existiert die Datei nicht, dann neu erstellen.
            counters_datei.createNewFile();
            counters_datei.setWritable(true);
        }

        Document counters_doc = new Document();
        Element rootElement = new Element("counters");
        counters_doc.setRootElement(rootElement);

        Element test = new Element("test");
        test.setText("inhalt");
        rootElement.addContent(test);

        XMLOutputter xmlOutputter = new XMLOutputter();
        xmlOutputter.setFormat(Format.getPrettyFormat());
        xmlOutputter.output(counters_doc, new FileOutputStream(counters_datei));

    }    catch (Exception e) {
        e.printStackTrace();
    }

Danke vielmals.
Beste Grüße.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.03.2016, 07:02:08 via App

Hallo Can!

Super, wenn deine Frage geklärt ist, setze doch bitte noch deinen Thread auf "Beantwortet"!

PS: Lag wohl am OutputStream type oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Can Erdener Yazar
  • Forum-Beiträge: 57

16.03.2016, 07:56:57 via Website

Hallo Pascal,

ja, ich glaub auch, dass das Problem am OutputStream type gelegen hat.

Ich setze den Thread auf "Beantwortet".

Danke dir.
Beste Grüße.

Pascal P.

Antworten