JdomParseException

zauni100

Grünschnabel
// Sorry, hab mich verdrückt! Gehört eigentlich zu Java!

Hallo Leute!
Ich hab da ein Problem beim einlesen einer xml-datei.

Die xml datei bekomme ich von einem webservice gesendet.

Anfang der xml-datei
Code:
<?xml version="1.0" encoding="UTF-8"?>
<EXPORT version="1.0" date="2007-08-22T10:52:48" records="55" processtime="0" comp_id="xxxxxxxx" allData="false" start="2007-08-22T07:09:28" end="2007-08-22T10:12:37">.......

Diese Datei dient als Backup, also möchte ich eine neue erstellen mit der ich arbeiten kann.
Das ganze passiert folgendermaßen:
Code:
     builder = new SAXBuilder();

		source = new InputSource(path);


		try {
			doc = builder.build(source);

		} catch (IOException e) {
			System.out.println(e.toString());
		} catch (JDOMException e) {
			System.out.println(e.toString());
		}

blöderweise bekomme ich hier immer eine JdomParseException:
Error on line 2 of document file:///C:/Programme/.../msm_output_0.xml: Invalid byte 2 of 2-byte UTF-8 sequence.

Hab keine Ahnung wie ich den Fehler beheben kann!

Schon mal Danke im Voraus!

MFG
 
Zuletzt bearbeitet:
Kannst Du die Datei mal anhängen? Das oben scheint ja nur ein Auszug zu sein..

Allerdings vermute ich einfach nen Umlaut oder ähnliches und das ganze ist zwar als UTF8 deklariert, wird aber wohl anders codiert sein..

Gruß
 
Hmm! Das File kann ich leider nicht anhängen!
Sind vertrauliche Infos enthalten,....und wenn ich was am Fle ändere und speicher, dann tritt der fehler nicht mehr auf!

Das mit dem Umlaut könnte stimmen! Im XML-File sind daten enthalten in denen Umlaute stehen! Kann ich das beim empfangen des Files schon umgehen?

Code:
<MESSAGE MESSAGE="Neue Aufträge wurden ausgesendet."/>

Code zum einlesen:
Code:
			url = new URL(link);
			filename = fileheader + i + ".xml";
			r.setFilename(filename);
			conn = url.openConnection();
			conn.setDoOutput(true);
			conn.connect();
			in = conn.getInputStream();
			file = new File(filename);
			output = new FileWriter(file);
			out = new BufferedWriter(output);

			while ((c = in.read()) != -1) {
				out.write((char) c);
			}
			in.close();
			out.close();
 
Zuletzt bearbeitet:
Das Problem ist, das Du zwar einen (Byte)InputStream verwendet, zum Schreiben aber einen der Writer Klassen, welche Character Orientiert sind. Hierdurch findet eine Konvertierung statt. Ich schlag vor, das Du Dir die Subclassen von Outpuststream anschaust.

Gruß
 

Neue Beiträge

Zurück