Node unter anderem Namen kopieren

Status
Nicht offen für weitere Antworten.

netwundi

Mitglied
Liebe Leute,

dies ist meine erste Frage in diesem Forum, da scheinbar das Sun-Forum den Geist aufgegeben hat. Ich stehe vor folgender Aufgabe: Ich moechte eine XML-Datei einlesen, nach einem bestimmten Element suchen, und den Inhalt dieses Elements unter neuem Namen als Sibling anhaengen. Beispiel:
Wenn das Ausgangsdokument so aussieht
Code:
<bla>
 <blub>Text steht hier</blub>
</bla>
dann soll das Ergebnis so aussehen:
Code:
<bla>
 <blub>Text steht hier</blub>
 <mehrBlub>Text steht hier</mehrBlub>
</bla>
Der Benutzer soll dann noch auswaehlen koennen, ob basierend auf einem Bool'schen Attribut von <bla> ein weiteres Element eingefuegt werden soll, wie folgt:
Code:
<bla>
 <blub>Text steht hier</blub>
 <mehrBlub><element>Text steht hier</element></mehrBlub>
</bla>

Bei der Suche nach der Loesung habe ich die clone-Methode des Node-Objekts gefunden, bei der aber der Name des geklonten Nodes der gleiche ist wie der Ausgangs-Node. Problem ist auch, dass nur eine insertBefore-Methode gibt, aber keine insertAfter-Methode. Der zu kopierende Teil koennte uebrigens noch Elemtente enthalten, die mitkopiert werden muessen.
Hat jemand eine Idee?
Vielen Dank im Vorraus!

Schoenen Gruss,

netwundi
 
R

Roar

Gast
hallo,
du kannst insertBefore(), als zweiten parameter einfach null übergeben, dann wird die node hinten dran gehängt.
zum zweiten problem wegen cloneNode() fällt mir nichts besseres ein als mit Document#createElement(String) ein neues Element anzulegen und rekursiv alle kinder die der Node, den cloneNode() zurückliefert hinzuzufügen.
 

netwundi

Mitglied
Danke fuer den Tipp mit insertBefore()! Das waere also schonmal geloest. Die Methode mit der kursiven ERstellung des neuen Nodes wollte ich eigentlich vermeiden. Ich hatte gehofft, es geht auch einfacher.

Schoenen Gruss!
 

netwundi

Mitglied
In einem anderen Forum kamm noch der Tipp, den ersten Kind-Knoten zu klonen und diesen dann in ein neues Element einzufuegen. Damit muesste es dann hinhaun.

Schoenen Tach noch!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben