Javatpoint Logo
Javatpoint Logo

How to Read XML File in Java

Reading XML file in Java is much different from reading other files like .docx and .txt because XML file contains data between the tags. Java provides many ways to parse an XML file. There are two parsers in Java which parses an XML file:

  • Java DOM Parser
  • Java SAX Parser

Java DOM Parser

The DOM API provides the classes to read and write an XML file. We can create, delete, modify, and rearrange the node using the DOM API. DOM parser parses the entire XML file and creates a DOM object in the memory. It models an XML file in a tree structure for easy traversal and manipulation. In DOM everything in an XML file is a node. The node represents a component of an XML file. DOM parser is slow in process and occupies lots of memory when it loads an XML file into memory.

We must have followed the process to read an XML file in Java:

  • Instantiate XML file: DOM parser loads the XML file into memory and consider every tag as an element.
  • Get root node: Document class provides the getDocumentElement() method to get the root node and the element of the XML file.
  • Get all nodes: The getElementByTagName() method retrieves all the specific tag name from the XML file. Where ELEMENT_NODE type refers to a non-text node which has sub-elements. If we need to access all nodes from the starting, including the root node, we can recursively call the getChildElement() method.
  • Get Node by text value: We can use getElementByTextValue() method in order to search for a node by its value.
  • Get Node by attribute value: If we want to search a node by the value of a specific attribute, we can use the getElementByTagName() method along with getAttribute() method.

Steps to Read XML File in Java Using eclipse

Step 1: Create a simple Java project.

Step 2: Create a class file and provide a class file name. We have created the class file with the name ReadXMLFileExample1.

Step 3: Write the following code.

Step 4: Download dom-2.3.0-jaxb-1.0.6.jar file: Click here...

Step 5: Create a lib folder in the project.

Step 6: Copy dom-2.3.0-jaxb-1.0.6.jar file and paste into the lib folder.

Step 7: Set the class path:

Right-click on the project->Build Path->Configure Build Path->Add External JARs->Select the JAR file->click on Open button->Apply and Close.

Step 8: Create an XML file. We have created an XML file with name XMLFile.xml and write the following data into it.

Step 9: Run the project.

Creating XML file: XMLFile.xml

Example of reading XML file using DOM Parser

Output:

Root element: class

Node Name: student
Student id: 101
First Name: Naman
Last Name: Kumar
Subject: Math
Marks: 83

Node Name: student
Student id: 102
First Name: Kapil
Last Name: Kumar
Subject: Chemistry
Marks: 60

Node Name: student
Student id: 103
First Name: Harsh
Last Name: Singh
Subject: English
Marks: 70

Node Name: student
Student id: 104
First Name: Jitesh
Last Name: Singh
Subject: Physics
Marks: 76

Let's see another example of reading xml file.

Example of reading XML file using DOM Parser

The following example reads the same XML file XMLFile.xml, and showing that how to loop the node one by one. It prints the node value, name and attribute if any.

Example

Output:

Root element: class

Node Name =class [OPEN]
Node Content =
	
		101
		Naman
		Kumar
		Maths
		83
	
		102
		Kapil
		Kumar
		Chemistry
		60
	
		103
		Harsh
		Singh
		English
		70
	
		104
		Jitesh
		Singh
		Physics
		76
	
Node Name =student [OPEN]
Node Content =
		101
		Naman
		Kumar
		Maths
		83
	
Node Name =id [OPEN]
Node Content =101
Node Name =id [CLOSE]

Node Name =firstname [OPEN]
Node Content =Naman
Node Name =firstname [CLOSE]

Node Name =lastname [OPEN]
Node Content =Kumar
Node Name =lastname [CLOSE]

Node Name =subject [OPEN]
Node Content =Math
Node Name =subject [CLOSE]

Node Name =marks [OPEN]
Node Content =83
Node Name =marks [CLOSE]
Node Name =student [CLOSE]

Node Name =student [OPEN]
Node Content =
		102
		Kapil
		Kumar
		Chemistry
		60
	
Node Name =id [OPEN]
Node Content =102
Node Name =id [CLOSE]

Node Name =firstname [OPEN]
Node Content =Kapil
Node Name =firstname [CLOSE]

Node Name =lastname [OPEN]
Node Content =Kumar
Node Name =lastname [CLOSE]

Node Name =subject [OPEN]
Node Content =Chemistry
Node Name =subject [CLOSE]

Node Name =marks [OPEN]
Node Content =60
Node Name =marks [CLOSE]
Node Name =student [CLOSE]

Node Name =student [OPEN]
Node Content =
		103
		Harsh
		Singh
		English
		70
	
Node Name =id [OPEN]
Node Content =103
Node Name =id [CLOSE]

Node Name =firstname [OPEN]
Node Content =Harsh
Node Name =firstname [CLOSE]

Node Name =lastname [OPEN]
Node Content =Singh
Node Name =lastname [CLOSE]

Node Name =subject [OPEN]
Node Content =English
Node Name =subject [CLOSE]

Node Name =marks [OPEN]
Node Content =70
Node Name =marks [CLOSE]
Node Name =student [CLOSE]

Node Name =student [OPEN]
Node Content =
		104
		Jitesh
		Singh
		Physics
		76
	
Node Name =id [OPEN]
Node Content =104
Node Name =id [CLOSE]

Node Name =firstname [OPEN]
Node Content =Jitesh
Node Name =firstname [CLOSE]

Node Name =lastname [OPEN]
Node Content =Singh
Node Name =lastname [CLOSE]

Node Name =subject [OPEN]
Node Content =Physics
Node Name =subject [CLOSE]

Node Name =marks [OPEN]
Node Content =76
Node Name =marks [CLOSE]
Node Name =student [CLOSE]
Node Name =class [CLOSE]

Java SAX Parser

Java SAX parser stands for Simple API for XML. SAX parser parses an XML file line by line. It triggers events when it encounters the opening tag, closing tag, and character data in an xml file. SAX parser is also called the event-based parser.

SAX parser does not load any XML file into memory. It does not create any object representation of the XML document. SAX parser uses call back function to inform clients of the XML document structure. It is faster and uses less memory than DOM parser.

SAX is a streaming interface for XML, which means that XML file parses in sequential order starting at the top of the document, and ending with the closing of the root element.

Example of reading XML file using SAX parser

Output:

Start Element: class
Start Element: student
Start Element: id
ID: 101
End Element: id
Start Element: firstname
First Name: Naman
End Element: firstname
Start Element: lastname
Last Name: Kumar
End Element: lastname
Start Element: subject
Subject: Math
End Element: subject
Start Element: marks
Marks: 83
End Element: marks
End Element: student
Start Element: student
Start Element: id
ID: 102
End Element: id
Start Element: firstname
First Name: Kapil
End Element: firstname
Start Element: lastname
Last Name: Kumar
End Element: lastname
Start Element: subject
Subject: Chemistry
End Element: subject
Start Element: marks
Marks: 60
End Element: marks
End Element: student
Start Element: student
Start Element: id
ID: 103
End Element: id
Start Element: firstname
First Name: Harsh
End Element: firstname
Start Element: lastname
Last Name: Singh
End Element: lastname
Start Element: subject
Subject: English
End Element: subject
Start Element: marks
Marks: 70
End Element: marks
End Element: student
Start Element: student
Start Element: id
ID: 104
End Element: id
Start Element: firstname
First Name: Jitesh
End Element: firstname
Start Element: lastname
Last Name: Singh
End Element: lastname
Start Element: subject
Subject: Physics
End Element: subject
Start Element: marks
Marks: 76
End Element: marks
End Element: student
End Element: class

Next TopicJava Tutorial




Help Others, Please Share

facebook twitter google plus pinterest

Learn Latest Tutorials


Preparation


Trending Technologies


B.Tech / MCA