Share on Google+Share on Google+

Duplicating a Subtree

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

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"?>
        <name It="Gi">Girish
        <name It="Ko">Komal
        <name It="Mahe">Mahendra

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

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

public class DuplicateTree {

  public static void main(String[] argsthrows Exception {

  DocumentBuilderFactory builderFactory = 

  Document doc = 
  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);
  System.out.println("Duplicated Subtree is: " +

Output of the program:-

Duplicated Subtree is: Employee

Download Source Code



Posted on: August 24, 2008 If you enjoyed this post then why not add us on Google+? Add us to your Circles

Share this Tutorial Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Discuss: Duplicating a Subtree  

Post your Comment

Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image