PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem mit Java 1.5



Andi B.
14-03-2005, 14:50
bei der Ausgabe eines XML files wurde laut Buch:
--------------------------------------------------------------------------------------------------------
public void speichern() {
String linesep=System.getProperty("line.separator");
try {
FileWriter Ausgabestrom = new FileWriter("xmlout.xml");
BufferedWriter output = new BufferedWriter(Ausgabestrom);
String inhalt = "<?xml version='1.0' encoding='iso-8859-1' ?>"
+ linesp;
inhalt += document.getDocumentElement();
System.out.println(document.getDocumentElement().t oString());
output.write(inhalt);
output.flush();
output.close();
} catch (IOException e) {
System.out.println("Speichern in XMLFile.java fehler");
}
}
--------------------------------------------------------------------------------------------------------
..das klappte auch unter Java 1.4.
Unter Java 1.5 wird bei der Funktion document.getDocumentElement().toString());
-> :NULL zurückgegeben.
Hat jemand schon damit Erfahrung?

Ich wollte danach auf 1.4. zurückstellen. Dabei habe ich aber andere Probleme die ich mit 1.5 nicht habe - ich würde lieber 1.5 nutzen!

Danke und Gruß
Andi

Andi B.
15-03-2005, 14:32
kann mir da keiner weiterhelfen?
Nutzt keiner 1.5 und gibt ein XML file aus?

Lin728
15-03-2005, 14:48
Ist denn das Verhalten, dass du von toString() erwartest, in den Apidocs spezifiziert.
Weil, wenn nicht hattest du mit 1.4 einfach Glück und die haben einfach die Implementierung etwas geändert.

Tut denn keine Andere Methode genau was du willst?

Andi B.
15-03-2005, 15:00
an das dachte ich auch schon und habe die toString() weggelassen. Sollte ja implementiert sein. Ist aber das gleiche Ergebnis.
Ein Arbeitskollege war erst auf einer Javaschulung. Laut seinen Unterlagen hat sich bei der Ausgabe von XML etwas verändert. Leider wurde darin nicht weiter eingegangen....

Gruß
Andi

anda_skoa
15-03-2005, 16:58
an das dachte ich auch schon und habe die toString() weggelassen.

Wie weggelassen?
Wie schreibst du jetzt?
( inhalt += ... ruft ja auch toString() auf)



Sollte ja implementiert sein. Ist aber das gleiche Ergebnis.

toString() ist immer implementiert, aber nicht immer sinnvoll :)

Wenn die Spezifikation einer Klasse keine genau Angabe zur Rückgabe von toString() macht, also explizit was angibt, würde ich es maximal für Debugoutput benutzen.

Ciao,
_

Andi B.
16-03-2005, 13:41
Ich mache es jetzt anders...

File file = new File("xmlout.xml");

TransformerFactory transformerFactory=
TransformerFactory.newInstance();
Transformer transformer;
try {
transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(file);

try {
transformer.transform(source, result);
} catch (TransformerException e1) {
System.out.println("Transformer Exception Fehler");
e1.printStackTrace();
}

} catch (TransformerConfigurationException e) {
System.out.println("Transformer Configuration Exception Fehler");
e.printStackTrace();
}


...das klappt !

Gruß
Andi