Creating a DocumentFragment Subtree and
Appending it to the Document

This Example shows how to Create a
DocumentFragment Subtree and describes the way to Append this fragment tree to a
DOM document. JAXP (Java API for XML Processing) is an interface which provides
parsing of xml documents. Here the Document BuilderFactory is used to create new
DOM parsers. Here we use "javax.xml.transform" package that defines
the generic APIs to process transformation instructions, it also performs a
transformation from source to result. There are some of the methods used in code
given below for Creating a DocumentFragment subtree:-
Element root = doc.getDocumentElement():- This method
allows direct access to the root Element of the document.
TransformerFactory factory =
TransformerFactory.newInstance():- TransformerFactory is a class that is used to
create Transformer objects. A TransformerFactory instance can be used to create
Transformer and Templates objects.
transformer.transform(source, result):- This function
organize data according to a style sheet as we are retrieving it from the File.
Element element = doc.createElement("name"):-
This method creates an Element Node. Here "name" is the String that
specifies the name of the element node.
Text text = doc.createTextNode(name):- This method
creates a Text Node. Here "name" is the String that specifies the text
for the node.
element.appendChild(text):- This method adds a node
after the last child node of the specified node.
Xml code for the program generated is:-
<?xml version="1.0" encoding="UTF-8"?>
<Company>
<Employee>
<Employeename>Girish Tewari</Employeename>
<email>girish@gmail.com</email>
</Employee>
<Employee>
<Employeename>Komal</Employeename>
<email>Komal@gmail.com</email>
</Employee>
<Employee>
<Employeename>Mahendra</Employeename>
<email>dhoni@gmail.com</email>
</Employee>
</Company>
|
Creatingdocumentfragment.java
/*
* @Program for Creating a DocumentFragment Subtree and Appending to the Document
* Creatingdocumentfragment.java
* Author:-RoseIndia Team
* Date:-10-Jun-2008
*/
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class Creatingdocumentfragment {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().parse(new File("2.xml"));
new Creatingdocumentfragment().newFragment(doc);
}
public void newFragment(Document doc) throws Exception {
Element root = doc.getDocumentElement();
DocumentFragment fragment = doc.createDocumentFragment();
Element person = Fragmenttree(doc, "Girish", "developer");
fragment.appendChild(person);
person = Fragmenttree(doc, "Komal", "Developer");
fragment.appendChild(person);
root.appendChild(fragment);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
// create string from xml tree
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
String xmlString = sw.toString();
System.out.println(xmlString);
}
public Element Fragmenttree(Document doc, String name, String Status) {
Element element = doc.createElement("name");
Text text = doc.createTextNode(name);
element.appendChild(text);
Element status = doc.createElement("Status");
Text text1 = doc.createTextNode(Status);
status.appendChild(text1);
Element Person = doc.createElement("person");
Person.appendChild(element);
Person.appendChild(status);
return (Person);
}
} |
Output of the program:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Company>
<Employee>
<Employeename>Girish Tewari</Employeename>
<email>girish@gmail.com</email>
</Employee>
<Employee>
<Employeename>Komal</Employeename>
<email>Komal@gmail.com</email>
</Employee>
<Employee>
<Employeename>Mahendra</Employeename>
<email>dhoni@gmail.com</email>
</Employee>
<person>
<name>Girish</name>
<Status>developer</Status>
</person>
<person>
<name>Komal</name>
<Status>Developer</Status>
</person>
</Company>
|
Download SourceCode

|