π Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
π Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Warning: DOM Parser is slow and consumes a lot of memory when it loads an XML document which contains a lot of data. Please consider SAX parser as a solution for it, SAX is faster than DOM and use less memory.
Development Process Steps
- Input users.xml File(XML file we will read)
- Create User class (populate XML data into User object)
- Program to Read XML File in Java using Java DOM Parser
1. Input users.xml File(XML file we will read)
<?xml version="1.0" encoding="UTF-8"?>
<Users>
<User>
<id>1</id>
<firstName>Ramesh</firstName>
<lastName>Fadatare</lastName>
<age>28</age>
<gender>Male</gender>
</User>
<User>
<id>2</id>
<firstName>John</firstName>
<lastName>Cena</lastName>
<age>45</age>
<gender>Male</gender>
</User>
<User>
<id>3</id>
<firstName>Tom</firstName>
<lastName>Cruise</lastName>
<age>40</age>
<gender>Male</gender>
</User>
</Users>
2. Create User class (populate XML data into User object)
package net.javaguides.javaxmlparser.dom;
public class User {
private int id;
private String firstName;
private String lastName;
private int age;
private String gender;
public int getId() {
return id;
}
public void setId(int i) {
this.id = i;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "User [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + ", gender=" +
gender + "]";
}
}
3. Program to Read XML File in Java using Java DOM Parser
package net.javaguides.javaxmlparser.dom;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* Java DOM Parser to Read XML File in Java
* @author Ramesh Fadatare
*
*/
public class ReadXMLFileInJava {
public static void main(String[] args) {
String filePath = "users.xml";
File xmlFile = new File(filePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nodeList = doc.getElementsByTagName("User");
// now XML is loaded as Document in memory, lets convert it to Object List
List < User > userList = new ArrayList < User > ();
for (int i = 0; i < nodeList.getLength(); i++) {
userList.add(getUser(nodeList.item(i)));
}
// lets print User list information
for (User emp: userList) {
System.out.println(emp.toString());
}
} catch (SAXException | ParserConfigurationException | IOException e1) {
e1.printStackTrace();
}
}
private static User getUser(Node node) {
// XMLReaderDOM domReader = new XMLReaderDOM();
User user = new User();
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
user.setId(Integer.parseInt(getTagValue("id", element)));
user.setFirstName(getTagValue("firstName", element));
user.setLastName(getTagValue("lastName", element));
user.setGender(getTagValue("gender", element));
user.setAge(Integer.parseInt(getTagValue("age", element)));
}
return user;
}
private static String getTagValue(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodeList.item(0);
return node.getNodeValue();
}
}
Root element :Users
User [id=1, firstName=Ramesh, lastName=Fadatare, age=28, gender=Male]
User [id=2, firstName=John, lastName=Cena, age=45, gender=Male]
User [id=3, firstName=Tom, lastName=Cruise, age=40, gender=Male]
Comments
Post a Comment
Leave Comment