# XML speichern



## Cody7 (19. Okt 2005)

Ich versuche gerade eine XML Datei zu öffnen und neu zu speichern. Dafür habe ich aus einem Buch
ein Beispiel genommen. Das Laden und Auswerten klappt wunderbar. Die XML Datei ist in 'document' 
gespeichert und kann von dort ausgelesen werden. Wenn ich sie jetzt aber neu speichern will funktionuert
das nicht. Ich bekomme kein Fehler beim speichern und die Datei wird auch erstellt. Leider stehen 
aber meine Daten nicht drin. Es steht nur

<?xml version='1.0' encoding='iso-8859-1' ?>
[Adresse: null]




Die Funktion zum speichern

```
public void speichern(String param[])
{

        try 
        {    
          FileWriter Ausgabestrom= new FileWriter("dressen1.xml");
                   
          BufferedWriter output = new BufferedWriter(Ausgabestrom);
          String inhalt="<?xml version='1.0' encoding='iso-8859-1' ?>\n";
          inhalt=inhalt+document.getDocumentElement().toString();
          output.write(inhalt);
          output.close();

        }
        catch (IOException e) 
       { 
          ErrorFenster.ausgabe("IO-Fehler:\n"+e);

       }                                       
 

}
```

Da ich keinen Fehler bekommen weiß ich auch nicht, wo ich suchen soll?


----------



## Bleiglanz (19. Okt 2005)

[Adresse: null] 

ist eben die String Darstellung von getDocumentElement

schau mal in die API oder in ein Tutorial wie man ein XML Dokument serialisiert...


----------



## Cody7 (19. Okt 2005)

Genau so steht es bei mir im Buch. 
Ich werde mal noch woanders schau.


----------



## Cody7 (20. Okt 2005)

Jetzt habe ich gefunden, warum es nilcht ging. Bei J2SE 5.0 hat sich etwas geändert.
Ich habe auch ein neues Beispiel gefunden. Nur funktioniert es auch nicht!!

```
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	
	try {
		DocumentBuilder builder = factory.newDocumentBuilder();
	
	Document document = builder.newDocument();
	DOMImplementation impl =document.getImplementation();
	DOMImplementationLS implLS =(DOMImplementationLS) impl.getFeature("LS", "3.0");
	LSParser parser = implLS.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS , null);
	document=parser.parseURI("adressen.xml");
	} catch (ParserConfigurationException e) {
		// TODO Auto-generated catch block
		System.out.println(e);
}
```


Wenn ich dann auf document zugreife bekomme ich eine NullPointerException.


----------



## Bleiglanz (20. Okt 2005)

>>Genau so steht es bei mir im Buch. 

Glaub ich nicht, welches Buch ist denn das


```
File f = new File("adressen.xml");
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(f);
TransformerFactory tFactory =    TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);//wohin du willst
transformer.transform(source, result);
```


----------



## Cody7 (20. Okt 2005)

Das erste Beispiel hatte ich aus einem Buch! 
Das zweite hatte ich aus dem Netz. Ich hatte beim Autor von
meinem Buch nachgefragt, warum sein Beispiel nicht geht. Er 
hat geschrieben, dass seit J2SE 5.0 eine Änderung drin ist und
das zweite Beispiel ins Netz gestellt. Kannst dir auch selbst anschauen.
Trotzdem danke für dein Beispiel. Werde es gleich mal testen.


----------



## Bleiglanz (20. Okt 2005)

```
BufferedWriter output = new BufferedWriter(Ausgabestrom);
          String inhalt="<?xml version='1.0' encoding='iso-8859-1' ?>\n";
          inhalt=inhalt+document.getDocumentElement().toString();
          output.write(inhalt);
          output.close();
```
das kann doch in keinem Buch gewesen sein!

da gibts keine Änderung in Java5, element.toString() hat noch nie eine XML-Darstellung eines Elements geliefert...


----------



## Cody7 (20. Okt 2005)

Was soll ich dazu sagen. Im Forum gibt es mindestens noch einen Beitrag bei dem 
dieses Beispiel aus dem Buch auftaucht. Und siehe da!!! Wer hat den auf diesen Beitrag
geantwortet. Den kennen wir doch!!

http://www.java-forum.org/de/viewtopic.php?t=17967&highlight=getdocumentelement

Und zum zweiten Punkt. Schau doch mal unter

http://www.seebi.de/html/_d/_set_d.php3?site=03support/support10_d.html

dann auf : Java/XML - Das Einsteigerseminar (ab 2002)
dann weiter: Diskussionsforum Java/XML
 und dann den Beitrag XML speicher vom 18.10.2005 


Wenn es dann noch Zweifel gibt scanne ich die Seite ein und schicke sie!


----------

