# Elemente aus XML-File löschen (JDom)



## Tokka (21. Nov 2004)

Hallo beisammen.

Nach dem ich meine Probleme was das erstellen eines XML Files anging, gemeistert habe, stehe ich erneut vor
einem Problem.

Ich möchte gerne aus meinem XML File einträge löschen. 


```
<benutzerverwaltung>
<user>
<username>Ernie</username> 
<password>12345</password> 
<level>5</level> 
</user>
</benutzerverwaltung>
```

Die Elemente username, password und level bekomme ich gelöscht, aber es belibt ein leeres "user" stehen


```
<benutzerverwaltung>
  <user /> 
</benutzerverwaltung>
```

Das Element user würde ich auch gerne noch entfernen, aber mir sind nun nach etlichen Stunden die 
ideen ausgegangen, wie ich das realisieren kann; und die JDom docu hat mich auch nicht mehr weiter gebracht.


Über eine kleine hilfe würde ich mich sehr freuen.

Gruß
Tokka


----------



## Bleiglanz (22. Nov 2004)

> Die Elemente username, password und level bekomme ich gelöscht, aber es belibt ein leeres "user" stehen


dann lösch doch das <user> Element genau so, wie du vorher die Kindelemente gelöscht hast?


----------



## Guest (22. Nov 2004)

Aber wie finde ich das Leere Element??

Immerhin stehen im XML file momentan 10 User-Elemente drin...


----------



## Bleiglanz (22. Nov 2004)

das ist ja wohl das, mit dem du die lösch-Operation durchgeführt hast


----------



## Guest (22. Nov 2004)

Tja, leider macht er das nicht......


Hier mal mein Code, denn ich denke, dass ich irgend wo nen fehler reingehauen habe....

```
Document doc = readFromFile(filename);
            Element root = doc.getRootElement();
            String testi = root.getValue();

            List userList = root.getChildren("user");
            Iterator userIterator = userList.iterator();
                        
            Element tempElement;
            while (userIterator.hasNext())
            {
                tempElement = (Element) userIterator.next();
                String deleteUser = tempElement.getChildText("username");
             
                if(deleteUser.equals(current_user))
                {
                    tempElement.removeChild("username");
                    tempElement.removeChild("password");
                    tempElement.removeChild("level");
                    root.removeChild("user");
                   
                    FileOutputStream out = new FileOutputStream(filename);
                    XMLOutputter serializer = new XMLOutputter();
                    serializer.output(doc, out);
                    out.flush();
                    out.close();
                    break;
                }
            }
```


----------



## Bleiglanz (23. Nov 2004)

kannst du die API / javadoc nicht lesen

	removeContent(Content child)
          Removes a single child node from the content list.

getParent

public Parent getParent()

    Return this child's parent, or null if this child is currently not attached. The parent can be either an Element or a Document.

    Returns:
        this child's parent or null if none

also bei dir

```
tempElement.getParent().removeContent(tempElement)
```
oder sowas


----------



## Gast (23. Nov 2004)

Danke für den Hinweis!

und Ja, ich kann (die API) lesen, jedoch habe ich wohl etwas mißverstanden.


----------



## Gast (23. Nov 2004)

@Bleiglanz: Man kann auch freundlicher antworten!!

Deshalb ist zumindest für mich das Forum gestorben, es gibt freundlichere Communities

@TopicStarter: Immer erst die API lesen


----------



## Bleiglanz (23. Nov 2004)

> Man kann auch freundlicher antworten!!


Ich nicht. 


> Deshalb ist zumindest für mich das Forum gestorben


Na toll, nur weil ein einziger sozial inkompetenter Poster im Forum unterwegs ist (unter hunderten wirklich netten Leuten), ist das ganze für dich gleich gestorben? 

Wenns so weitergeht dann gilt das auch für mich. Überall sensible Naturen, deren empfindliche Augen durch Ausdrücke wie "RTFM" so stark belastet werden, dass sie vor dem Bildschirm erbeben. Am besten ich ziehe mich mit Blastentee und Wärmdecke zurück aufs Altenteil


----------



## Tokka (23. Nov 2004)

So, ich hoffe, das ich dieses mal nicht wieder asl Gast antworte....


@Bleiglanz: Du hast mr mit deiner Antwort sehr geholfen, und dein hinweis auf die API ist durchaus berechtigt.

Ich werde jedenfalls häufiger in das Forum schauen, da ich hier bestimmt den ein oder anderen Hinweis (und sei es nur RTFM) bekomme.


Noch mal Vielen Dank für die Hilfe!!

Gruß
Tokka


----------

