How to Read XML File in JavaReading 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 ParserThe 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:
Steps to Read XML File in Java Using eclipseStep 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 ParserJava 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
|