# Node unter anderem Namen kopieren



## netwundi (9. Sep 2005)

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

```
<bla>
 <blub>Text steht hier</blub>
</bla>
```
dann soll das Ergebnis so aussehen: 

```
<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: 

```
<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


----------



## Roar (9. Sep 2005)

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 (9. Sep 2005)

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 (10. Sep 2005)

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!


----------

