# Fehler beim Einlesen von XML mittels JDOM



## benjero (20. Juni 2004)

Hallo zusammen,

ich kämpfe nun seit längerem mit folgendem Fehler:
Eine von mir erstellte XML-Datei kann mittels JDOM nicht eingelesen werde, da vom SAXBuilder die Exception "java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence" geworfen wird.

Beim Erstellen der Datei setze ich mittels das Encoding für den XML-Outputter auf "ISO-8859-1". Wobei es eigentlich egal ist, ob dies gesetzt wird oder nicht, da der Fehler in beiden Fällen beim Einlesen auftritt.

Weiß jemand vielleicht Abhilfe?

Danke und Gruß
Ben


----------



## Christian Fein (21. Juni 2004)

> _Original geschrieben von benjero _
> *Hallo zusammen,
> 
> ich kämpfe nun seit längerem mit folgendem Fehler:
> ...



Nimm nen anderen Editor zum erstellen der XML Datei. 

Ich hatte mal das selbe Problem, und schuld war letztendlich ein dummer editor der mir multipart Dateien erstellt hatte.


----------



## benjero (21. Juni 2004)

Hallo!

Das wird schwierig, denn mein Programm erstellt ja die Datei... Ich möchte diese halt später wieder einlesen. Auch das erstellen läuft natürlich über JDOM.

Gruß
Ben


----------



## Christian Fein (21. Juni 2004)

> _Original geschrieben von benjero _
> *Hallo!
> 
> Das wird schwierig, denn mein Programm erstellt ja die Datei... Ich möchte diese halt später wieder einlesen. Auch das erstellen läuft natürlich über JDOM.
> ...



Stimmt habe ich überlesen das du es mit dem XMLOutputter erstellst.

mhhh sollte eigentlich kein Problem darstellen.
Setz das Encodingt im XMLOutputter mal auf utf-8


----------



## benjero (21. Juni 2004)

Moin,



> Setz das Encodingt im XMLOutputter mal auf utf-8



hab ich auch schon gemacht, ändert aber nichts. Liegt auch nicht am OS, was ich zwischenzeitlich mal gedacht hatte. Der Fehler tritt sowohl unter Linux als Windows auf.  

Gruß
Ben


----------



## Christian Fein (22. Juni 2004)

poste mal dein Code, ist leichter als so im Trüben fischen )
Ich teste und schau mal


----------



## benjero (22. Juni 2004)

Ok, ich bin mir nicht ganz sicher, was Du "alles" sehen möchtest. Hoffe, folgendes wird reichen.

Zum Schreiben:


> try {
> 
> FileOutputStream out = new FileOutputStream(datname);
> XMLOutputter serializer = new XMLOutputter(" ", true);
> ...



und zum Lesen:


> try {
> 
> SAXBuilder builder = new SAXBuilder(true);
> InputSource is = new InputSource(datname);
> ...


----------



## Cybernd (22. Juni 2004)

Mal ein wenig aufbereitet:

```
import java.io.FileOutputStream;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.xml.sax.InputSource;

public class Test {

    public static void main(String[] args) {

        String file = "c:\\home\\test.xml";
        try {
            Document doc = new Document();
            Element e = new Element("test");
            e.addContent("düdlüö");
            doc.setRootElement(e);

            FileOutputStream out = new FileOutputStream(file);
            XMLOutputter serializer = new XMLOutputter(" ", true);
            serializer.setEncoding("ISO-8859-1");
            serializer.output(doc, out);
            out.flush();
            out.close();
            
            SAXBuilder builder = new SAXBuilder(false);
            InputSource is = new InputSource(file);
            Document newDoc = builder.build(is);
            System.out.println("ging");

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

Funktioniert dieses Beispiel? Funktioniert bei mir nämlich wunderbar. (Auch mit anderen Encodings).

cybi


----------



## benjero (22. Juni 2004)

Mhh, interessant, das geht ohne Probleme...


----------



## Cybernd (22. Juni 2004)

Tja ich hoffe du verstehst wieso wir dir dann nicht helfen können ;o) Die Ursache liegt irgendwo außerhalb der von dir geposteten Codefragmente.

Versuch einfach mal äste im XML wegzulassen bis du auf einem funktionierenden Level angekommen bist .. Auf die Tour müsstest du die Ursache innerhalb deiner XML finden können ..

cybi


----------



## benjero (22. Juni 2004)

Ok, danke für Eure Hilfe, das Problem saß mal wieder vor dem Bildschirm. Ich habe bei der Verarbeitung der Eingelesenen Daten diese Exception nicht abgefangen...


----------

