Read XML File

How to read XML File in Java
There are two built-in XML parsers available in Java JDK DOM and SAX.
Here we will discuss only JAVA DOM parser.

Parse XML File in Java using DOM Parser
In this section we will see how to parse xml files or how to read xml file using DOM XML Parser. DOM is quick and easy way to parse xml files.


DOM parser parses the entire XML document and loads it into memory, then represents it in a tree like structure called DOM where each node of the XML file is represented as a DOM object. So these DOM objects are linked together and formed a tree like structure which will help to traverse each DOM object/node.


 Employee.xml
<?xml version="1.0" encoding="UTF-8"?>
<Employees>
<Employee id="1">
<firstname>Surendra</firstname>
<laststname>Das</laststname>
<doj>23/10/2015</doj>
<role>Java Developer</role>
<gender>Male</gender>
    </Employee>
    <Employee id="2">
<firstname>Vivek</firstname>
<laststname>Patra</laststname>
<doj>14/02/2013</doj>
<role>Senior Java Developer</role>
<gender>Male</gender>
   </Employee>
   <Employee id="3">
<firstname>Pinaki</firstname>
<laststname>Mishra</laststname>
<doj>22/05/2016</doj>
<role>Test Engineer</role>
<gender>Female</gender>
   </Employee>
</Employees>

ReadXML.java

package fileOperation;

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ReadXML {

public static String filePath="D:Path\\Employee.xml";
Document doc;
public void getXMLData(){
try{
File inputfile = new File(filePath);
//Get DocumentBuilder
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docbuilder = dbFactory.newDocumentBuilder();
            
            //Create a Document from a file
            doc = docbuilder.parse(inputfile);
            //Normalize the XML Structure
            doc.getDocumentElement().normalize();
            
            //Extract the root element
            Element root=doc.getDocumentElement();
            System.out.println("Root element :" + root.getNodeName());
            
    //Get list of all employee i.e list of elements with tag Employee
            NodeList nodelist = doc.getElementsByTagName("Employee");
                       
            for (int tmp = 0; tmp < nodelist.getLength(); tmp++) {  
            //Traverse individual element/emplyee
                Node nNode = nodelist.item(tmp);                       
                
                if (nNode.getNodeType() == Node.ELEMENT_NODE) {           
               
                    Element eElement = (Element) nNode;  

                    System.out.println("Employee id: "+ eElement.getAttribute("id"));
                    System.out.println("firstname : "+ eElement.getElementsByTagName("firstname").item(0).getTextContent());
                    System.out.println("laststname : "+ eElement.getElementsByTagName("laststname").item(0).getTextContent());
                System.out.println("doj : "+ eElement.getElementsByTagName("doj").item(0).getTextContent());
                System.out.println("role : "+eElement.getElementsByTagName("role").item(0).getTextContent());
                System.out.println("Gender : "+ eElement.getElementsByTagName("gender").item(0).getTextContent());
                }
            }
}catch(Exception e){
System.out.println("Exception caught");
}
}
public static void main(String[] args) {

ReadXML rx=new ReadXML();
rx.getXMLData();

}

}



No comments:

Post a Comment