JDOM - bestimmtes Child löschen !

Chimaira

Erfahrenes Mitglied
Hoi Leute,

ich habe hier eine XML Datei mit JDOM erzeugt und will jetzt eine Methode schreiben welche ein bestimmtes Element löscht.

Hier ist die XML-Datei:

Code:
<applications>
<app>
<instance>127.0.0.1:6003</instance>
<container>home</container>
<name>test</name>
<planFile>/tmp/planFiles/this.dat</planFile>
</app>
<app>
<instance>127.0.0.2:6003</instance>
<container>cont</container>
<name>Ubuntu</name>
<planFile>/tmp/planFiles/Ubuntu.dat</planFile>
</app>
<app>
<instance>127.0.0.3:6003</instance>
<container>oc4j_test</container>
<name>Rambazamba</name>
<planFile>/tmp/planFiles/Rambazabma.dat</planFile>
</app>
</applications>

Wie kann ich z.B. den fett gedruckten Datensatz aus der XML-Datei entfernen? Nicht wundern ^^ sind fiktive Daten :P

Greeze LeeMaN
 
Zuletzt bearbeitet:
Moin!
Code:
yourDoc.getRootElement().getChildren("app").remove(1);
müsste es tun.. Danach noch natürlich abspeichern..

*grüssle*
MeinerEiner
 
Hoi,

danke erstmal für die Antwort. Denkst du es wäre sinnvoll die Elemente mit nem Iterator durchzugehen ?

Greeze Chimaira
 
Hi,

habs jetzt gelöst. Nur finde ich die lösung mit den If-Verschachtelungen nicht gerade gelungen :(

PHP:
	public void deleteApplication(String instance, String container, String name){
		Document doc = getDocument(this.pfad);
		Element root = doc.getRootElement();
		
		Iterator<Element> _tmpIterRoot = root.getChildren().iterator();
		
		while(_tmpIterRoot.hasNext()){
			Iterator<Element> _tmpIterChild = _tmpIterRoot.next().getChildren().iterator();
			while(_tmpIterChild.hasNext()){
				Element _tmp = _tmpIterChild.next();
				
				if(_tmp.getText().equals(instance)){
					_tmp = _tmpIterChild.next();
				
					if(_tmp.getText().equals(container)){
						_tmp = _tmpIterChild.next();
					
						if(_tmp.getText().equals(name)){
							_tmpIterRoot.remove();
							save(doc, this.pfad);
							System.out.println("gelöscht");
						}
					}
				}
			}
		}
	}

Weiß jemand wie man das besser lösen kann? Oder findet ihr das Okay ?

Mfg Chimaira
 
Zuletzt bearbeitet:
Zurück