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