Hallo,
ich möchte ein Element mittels JDOM an einer bestimmten Stelle einfügen. Die Board-Suche hierzu hat mir u.a. die Methode addContent (int Index, Element neu) ausgespuckt. Diese Methode kann ich jedoch nicht nutzen, da ich die JDOM-Version b9 verwenden muss. Ich kann also nur mittels addContent (Element neu) neue Elemente an das Ende des Dokumentes einfügen.
Ich glaube (und hoffe), dass es aber trotzdem auch mit meiner älteren Version (umsteigen nicht möglich) von JDOM möglich ist. Meine Idee hierzu sieht wie folgt aus.
Ich hole mir die Struktur des XML-Documents in eine Liste vom Typ List. Ich durchsuche dann diese Liste bis ich die gewünschte Position gefunden habe. Das neue Element soll vor dem ersten Element eingefügt werden, welches keinen Unterelemente hat. Sobald ich die Position gefunden habe, füge ich der Liste ein neues Element an der entsprechenden Position hinzu. Zum Schluß übernehme ich dann die Liste als XML-Struktur.
Hier ist mein Code, der genau dies machen SOLL:
Das Resultat des Codes ist jedoch ein leeres XML-Dokument. Wer kann mir dies erklären ?
Viele Grüße
Brasi
ich möchte ein Element mittels JDOM an einer bestimmten Stelle einfügen. Die Board-Suche hierzu hat mir u.a. die Methode addContent (int Index, Element neu) ausgespuckt. Diese Methode kann ich jedoch nicht nutzen, da ich die JDOM-Version b9 verwenden muss. Ich kann also nur mittels addContent (Element neu) neue Elemente an das Ende des Dokumentes einfügen.
Ich glaube (und hoffe), dass es aber trotzdem auch mit meiner älteren Version (umsteigen nicht möglich) von JDOM möglich ist. Meine Idee hierzu sieht wie folgt aus.
Ich hole mir die Struktur des XML-Documents in eine Liste vom Typ List. Ich durchsuche dann diese Liste bis ich die gewünschte Position gefunden habe. Das neue Element soll vor dem ersten Element eingefügt werden, welches keinen Unterelemente hat. Sobald ich die Position gefunden habe, füge ich der Liste ein neues Element an der entsprechenden Position hinzu. Zum Schluß übernehme ich dann die Liste als XML-Struktur.
Hier ist mein Code, der genau dies machen SOLL:
Code:
List liste = document.getRootElement().getChildren();
//Suchen der einzufügenden Position
for (int pos = 0 ; pos < liste.size() ; pos++)
{
try
{
if (((Element)(liste.get(pos))).getChildren() != null)
{
liste.add(pos + 1, neuesElement);
document.getRootElement().setContent(liste);
break;
}
}
//In der Liste befinden sich nicht nur Elemente sondern auch Strings
catch (ClassCastException e)
{
}
}
Das Resultat des Codes ist jedoch ein leeres XML-Dokument. Wer kann mir dies erklären ?
Viele Grüße
Brasi