# Probleme mit Jdom



## subfusca (9. Okt 2005)

Hi an alle,

So mein erster Post und gleich ein Problem. 
Da ich eine Newbie bin habe ich als Literatur das Buch "Java ist auch eine Insel" gekauft.
Das war vor ein paar Monaten und jetzt komme ich im Kapitel "Die eXtensible Markup Language (XML)" überhaupt nicht weiter.
Die xml Datei hab ich wie im Beispiel erstellt:


```
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE party SYSTEM "partyDTD.dtd">
<party datum="31.12.01">
    <gast name="Albert Angsthase">
        <getraenk>Wein</getraenk>
        <getraenk>Bier</getraenk>
        <zustand ledig="true" nuechtern="false"/>
    </gast>
    <gast name="Martina Mutig">
        <getraenk>Apfelsaft</getraenk>
        <zustand ledig="true" nuechtern="true"/>
    </gast>
    <gast name="Zacharias Zottelig"></gast>
</party>
```

und danach diesen Javacode geschrieben:


```
import java.util.*;
import java.io.*;
import org.jdom.*;
import org.jdom.Element.*;
import org.jdom.Document.*;
import org.jdom.input.*;
import org.jdom.output.*;


public class test {
    
    public static void main(String[] args) {
        
        SAXBuilder builder = new SAXBuilder();

        
        try {
            Document doc = builder.build( "G:\\projekt\\hpr3a\\party.xml" );
            
            Element party = doc.getRootElement();
            Element albert = party.getChild( "gast" );
            List albertInfo = albert.getContent();
            Element wasser = new Element( "getraenk" );
            wasser.addContent( "Wasser" );
            System.out.println("FERTIG!!!");
            
            
            
            
        } catch (Exception any) {
            System.out.println("File nicht gefunden!");
        }
    }
    
}
```

So nach der Ausführung des Codes wird FERTIG ausgeben - also war schon mal der Pfadname in Ordnung.
Jedoch wird nicht das neue Element "Wasser" in die xml Datei "Party" hinzugefügt.  Andere Bspl. aus dem Buch funktionieren leider auch nicht korrekt.
Woran kann das Liegen??? Hab ich vielleicht Jdom falsch eingerichtet?? 

Ich hab auf der Seite http://www.jdom.org/ Jdom runtergeladen, entpackt und dann die Ms-Dos Konsole gestartet. 
Ich hab dann folgendes eingegeben: G:\> set JAVA_HOME=G:\j2sdk1.4.2_04  und dann
G:\project\jdom-1.0\.\build.bat
oder so ähnlich^^ war aber erfolgreich bzw. wurde mir über der Konsole mitgeteilt.
Die entstandene jdom.jar habe ich dann in meinem NetBeans eingebunden (benutze netBeans kein Eclipse oder SunOne)
via Filesystem -> Mount -> ActiveFiles -> und dann halt die jdom.jar ausgewählt. FERTIG!

Ich bin euch wirklich dankbar wenn ihr mir weiterhelfen könnt.
danke schon mal im voraus.

gruss
sub


----------



## Bleiglanz (9. Okt 2005)

du hast das element ja nur im Speicher hinzugefügt, die ursprünglich gelesene Datei wird dadurch nicht beeinträchtigt...

schreib das Dokument hat nochmal als Datei auf die Platte 


```
} catch (Exception any) {
            System.out.println("File nicht gefunden!");
        }
```
uahhh, du verschluckst alle Informationen!

mach zumindest ein any.printStacktrace() da rein


----------



## subfusca (9. Okt 2005)

Hi Bleiglanz,

danke für deine Antwort.
Ich hab jetzt die Datei folgendermasen überschrieben:


```
XMLOutputter outputter = new XMLOutputter();
FileOutputStream output = new FileOutputStream("G:\\projekt\\hpr3a\\party.xml");
outputter.output(doc,output);
```

zudem hatte ich noch 
	
	
	
	





```
albert.addContent( wasser );
```
 vergessen.

Und nun siehe da - ich hab das Wasser drinne :shock: 


```
...
        <getraenk>Wein</getraenk>
        <getraenk>Bier</getraenk>
        <zustand ledig="true" nuechtern="false" />
    <getraenk>Wasser</getraenk></gast>
    <gast name="Martina Mutig">
...
```

Naja nur schade das es nicht richtig formatiert unter dem letzten Getraenk eingefügt wurde.

Ich finde JDOM und XML super interessant. Daher die Frage - ob ihr mir gute Bücher oder Tutorials in Deutsch zu diesem Thema empfehlen könnt?

greetz
sub


PS:

```
} catch (Exception any) {
            any.printStackTrace();
//            System.out.println("File nicht gefunden! " + any.getMessage() );
        }
```
hab ich jetzt gemacht


----------



## Roar (9. Okt 2005)

sag outputter.setFormat(Format.getPrettyFormat()); und dann ists auch schön formatiert


----------

