Duplicating a Subtree

This Example shows you how to duplicate a Subtree in a DOM document.

Duplicating a Subtree

Duplicating a Subtree

     

This Example shows you how to duplicate a Subtree in a DOM document. Here we use JAXP (Java APIs for XML Processing) which provides interface for creating and using xml files using the standard DOM. These are some of the methods used in code given below for duplicating a subtree :-

Element orig = (Element) root.getFirstChild():- Allows direct access to the child of the root.

Element New = (Element) orig.cloneNode(true):- This serves as a generic copy constructor for nodes. It Creates a new Element node and stores the copy of the first child of the root in this node.

root.appendChild(New):- It adds the node (New) to the end of the list of children of this node.

Xml code for the program generated is:-
<?xml version="1.0" encoding="UTF-8"?>
<Company>
    <Employee>
        <name It="Gi">Girish
        </name>
    </Employee>
    <Employee>
        <name It="Ko">Komal
        </name>
    </Employee>
    <Employee>
        <name It="Mahe">Mahendra
        </name>
    </Employee>
</Company>


DuplicateTree.java

/* 
 * @Program that Duplicate a Subtree
 * DuplicateTree.java 
 * Author:-RoseIndia Team
 * Date:-10-Jun-2008
 */

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class DuplicateTree {

  public static void main(String[] argsthrows Exception {

  DocumentBuilderFactory builderFactory = 
 DocumentBuilderFactory.newInstance
();
  builderFactory.setValidating(false);

  Document doc = 
  builderFactory.newDocumentBuilder
().parse(
  new 
File("1.xml"));
  new DuplicateTree().duplicatingattributes(doc);
  }

  public void duplicatingattributes(Document doc) {
  Element root = doc.getDocumentElement();
  Element orig = (Elementroot.getFirstChild();
  //Duplicates a Subtree
  Element New = (Elementorig.cloneNode(true);
  root.appendChild(New);
  System.out.println(root.getNodeName());
  System.out.println(orig.getNodeName());
  System.out.println("Duplicated Subtree is: " +
    New.getNodeName
());
  }
}


Output of the program:-

Employee
Duplicated Subtree is: Employee


Download Source Code