Inserting a New Entry in a List

This Example shows you how to Insert a new Entry in a list in a DOM document.

Inserting a New Entry in a List

Inserting a New Entry in a List

     

This Example shows you how to Insert a new Entry in a list  in 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, also performs a transformation from source to result. There are some of the methods used in code given below for Inserting a new Entry in List:-

Element person = doc.createElement("Roseindia"):-This method creates an Element Node. Here "Roseindia" is the String that specifies the name of the element node.

person.appendChild(Node):-This method adds a node after the last child node of the specified node.

Text nametextNode = doc.createTextNode(name):-This method creates a Text Node.

root.insertBefore(person, firstNode):-This method insert person node before firstNode.

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.setOutputProperty(OutputKeys.INDENT, "yes"):-This method set an output property for the transformation. Here OutputKeys.INDENT is an output property name and "yes" is the value of the output property.

transformer.transform(source, result):-This function organize data according to a style sheet as we are retrieving it from the File.


Xml code for the program generated is:-

<?xml version="1.0" encoding="UTF-8"?>
<Company>
  <Employee>
  <Employeename>Girish Tewari</Employeename>
  <email>[email protected]</email>
  </Employee>
  <Employee>
  <Employeename>Komal</Employeename>
  <email>[email protected]</email>
  </Employee>
  <Employee>
  <Employeename>Mahendra</Employeename>
  <email>[email protected]</email>
  </Employee>
</Company>

Insertingnewentry.java

 

/* 
 * @Program for Inserting a New Entry in a List
 * Insertingnewentry.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 Insertingnewentry {

  public static void main(String[] args) throws Exception {
  DocumentBuilderFactory factory = 
   DocumentBuilderFactory.newInstance();

  Document doc = 
   factory.newDocumentBuilder().parse(
new File("2.xml"));
  new Insertingnewentry().Insertingnewentry(
   doc, 
"komal""Male""Developer");
  }

  public void Insertingnewentry(Document doc, 
   String name, String Sex, String Status)
  
throws Exception {

  Element person = doc.createElement("Roseindia");
  Element Node = doc.createElement("employeename");

  person.appendChild(Node);
  Text nametextNode = doc.createTextNode(name);
  Node.appendChild(nametextNode);

  Element root = doc.getDocumentElement();


  Element phoneNo = doc.createElement("Sex");
  person.appendChild(phoneNo);
  Text phonetextNode = doc.createTextNode(Sex);
  phoneNo.appendChild(phonetextNode);

  Element emailNode = doc.createElement("Status");
  person.appendChild(emailNode);
  Text emailtextNode = doc.createTextNode(Status);
  emailNode.appendChild(emailtextNode);
  root.appendChild(person);

  Node firstNode = root.getFirstChild();
  root.insertBefore(person, firstNode);

  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);


  }
}

Output of the program:-

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Company>
<Roseindia>
<employeename>komal</employeename>
<Sex>Male</Sex>
<Status>Developer</Status>
</Roseindia>
  <Employee>
  <Employeename>Girish Tewari</Employeename>
  <email>[email protected]</email>
  </Employee>
  <Employee>
  <Employeename>Komal</Employeename>
  <email>[email protected]</email>
  </Employee>
  <Employee>
  <Employeename>Mahendra</Employeename>
  <email>[email protected]</email>
  </Employee>
</Company>

 

DownLoad Source Code