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[] args) throws 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 = (Element) root.getFirstChild();
//Duplicates a Subtree
Element New = (Element) orig.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

|