Element im XML an der richtigen Position hinzufügen

marcap

Mitglied
Hallo,

Habe ein XML mit folgender Strukur:

-Root
-Element1
-Element2
-Element3

Wenn ich nun ein neues Element hinzufüge (sind alles laut definition die selben Elemente vom Namen her) kommt das neue Element immer hinter Element 3.

Wie kann ich es in Java bewerkstelligen dass ich das neue Element zwischen Element1 und Element2 hinzufügen kann?
Mir fehlt leider komplett der Ansatz. Derzeitig füge ich dem Root einfach ein neues Element hinzu:

Code:
Element newChild = new Element("Element4");
newChild.addContent("value");

rootElement.addContent(newChild);

Wäre dankbar für ein bisschen Hilfe

Gruß
 
Es gibt auch ein addContent mit einem int als erstem Parameter der den Index darstellt an dessen Stelle das Element eingefügt werden soll.
 
Hallo,

Das geht nicht. Ich habe bisher immer das Element mit folgender Zeile generiert:

Code:
elementNewChild.addContent(elementValue);
elementValue ist ein String. Die Funktion:

Code:
elementNewChild.addContent(position, elementValue);
möchte aber das Value vom Typ Content?
 
Ja dann lege ich ein Element dessen Namen eigentlich mein Content sein soll an. Das macht sich auch mit einem Fehler bemerkbar. Wenn ich
Code:
 addContent(position, new Element("test").addContent(elementValue).getContent());
fliegt er auch raus ...
 
Hallo,

Wenn ich es nun mit folgendem Aufruf versuche kommt die Fehlermeldung:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1 Size: 0

Code:
elementNewChild.addContent(position, new Text(elementValue));

Was ist daran Falsch? Die Variable Position wird mit 1 Initialisiert und es sind ca. 6 Elemente vorhanden, sollte also nicht über den Index laufen!
 
Zuletzt bearbeitet:
Du willst deinem neuen Child-Element Inhalt hinzufügen, an einer bestimmten Stelle... Ich denke es liegt daran dass die XML Datei vereinfacht so aussieht:
<root>
<element></element>
<element></element>
<root>

Wenn ich dich richtig verstanden habe, möchtest du jetzt zwischen element innerhalb root einen neuen child einfügen vom "typ" element. Dein Code fügt aber Inhalt zu element hinzu. Da dort aber wohl kein Inhalt ist, kommt die Exception...
PS: Wenn ich dich falsch verstanden habe, dann liegt es am Variablen-Namen vom letzten Posting von dir;) aber müsste eigentlich so sein
 
Zurück