Java DOM - Einfügen eines Elements nach dem anderen

8

Gegeben die folgende XML-Datei:

%Vor%

Ich möchte ein neues Element innerhalb von <sequence></sequence> nach einem bestimmten bereits vorhandenen Element hinzufügen. Wenn ich zum Beispiel den Knoten nach "Assign1" hinzufügen möchte, sollte das neue XML wie folgt aussehen:

%Vor%

Ich muss dies tun, indem ich Java DOM in einer Funktion verwende. Die Funktionssignatur sollte so aussehen:

%Vor%

Wo:

  • name ist das vorbestehende Element, nach dem die Einfügung vorgenommen wird;
  • stepType ist der eingefügte Elementtyp;
  • stepName ist das Namensattribut des neu eingefügten Elements.

Zur Zeit habe ich keine Erfahrung mit JDOM oder einer anderen Java XML-Bibliothek. Können Sie mir bitte einen Beispielcode geben oder auf ein Tutorial zeigen, wo ein Einfügen nach einem bestimmten Element vorgenommen wird.

Dies ist der Code, den ich bis jetzt habe:

%Vor%     
Andrei Ciobanu 04.08.2010, 11:31
quelle

4 Antworten

14

Ok, Aaron Digulla hat mich bezüglich der Geschwindigkeit geschlagen. Ich musste es auch selbst herausfinden. Ich habe cnl.item(i+1) aber nextSibling() nicht verwendet:

%Vor%

Sie können keine Knoten an einem bestimmten Index einfügen. Die einzigen Methoden zum Einfügen von Knoten sind

%Vor%

und

%Vor%

Wenn es eine Methode insertAfter (Node new, Node child) gäbe, wäre dies sehr einfach für Sie. Aber leider nicht.

    
f1sh 04.08.2010, 11:48
quelle
4

Es ist einfach, aber die org.w3c.dom API ist ein bisschen ... seltsam für diese:

%Vor%

Mit JDom ist es einfacher:

%Vor%     
Aaron Digulla 04.08.2010 11:39
quelle
2

Dies wird nicht getestet, aber Sie sollten Folgendes tun können:

%Vor%     
Garett 04.08.2010 11:48
quelle
2

Wie bereits erwähnt, ist die DOM-API für solche einfachen Operationen recht ausführlich. Wenn Sie etwas wie jOOX verwenden, um die DOM-API zu umbrechen, können Sie Folgendes eingeben:

%Vor%

Beachten Sie, dass die API der jQuery ähnelt.

    
Lukas Eder 12.07.2012 13:59
quelle

Tags und Links