
In this example, we will parse an XML file using the Java inbuilt DOM (Document Object Model) parser.
Sample XML file:<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<Id>1</Id>
<Name>Sam</Name>
<Age>20</Age>
</student>
<student>
<Id>2</Id>
<Name>Rita</Name>
<Age>22</Age>
</student>
<student>
<Id>3</Id>
<Name>Mike</Name>
<Age>23</Age>
</student>
<student>
<Id>4</Id>
<Name>Alex</Name>
<Age>21</Age>
</student>
</students>
Java Code:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
/**
*
* Code2care Java Programs
*
* This program demonstrates how to parse an
* XML file using Dom Parser.
*
*/
public class JavaDomParserExample {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(new File("/Users/code2care/IdeaProjects/plan/src/sample.xml"));
String rootNode = document.getDocumentElement().getNodeName();
NodeList studentsList = document.getElementsByTagName("student");
for (int i = 0; i < studentsList.getLength(); i++) {
Element student = (Element) studentsList.item(i);
String id = student.getElementsByTagName("Id").item(0).getTextContent();
String name = student.getElementsByTagName("Name").item(0).getTextContent();
String age = student.getElementsByTagName("Age").item(0).getTextContent();
System.out.println(rootNode + " record : " +( i + 1));
System.out.println("Id: " + id);
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("--------------");
}
}
}
Output:
students record: 1
Id: 1
Name: Sam
Age: 20
--------------
students record: 2
Id: 2
Name: Rita
Age: 22
--------------
students record: 3
Id: 3
Name: Mike
Age: 23
--------------
students record: 4
Id: 4
Name: Alex
Age: 21
--------------
Steps:
- Create an object of javax.xml.parsers.DocumentBuilderFactory the java core inbuilt XML parser.
- Create an object of javax.xml.parsers.DocumentBuilder
- Now, Create the org.w3c.dom.Document object
- Get the node list using: document.getElementsByTagName("tag-name-here")
- Iterate over the NodeList and get access to the elements of the xml file.
Note: DOM Parser will load the whole of the XML file in memory, so if the XML file is too huge you should avoid using DOM parser and instead use a SAX parser to avoid OOM (Out of Memory Errors).
- Create a Zip file using Java Code programmatically
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available
- How to Sort a LinkedList in Java
- Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
- How to declare and initialize Array in Java Programming
- [Fix] java: integer number too large compilation error
- Java JDBC Connection with MySQL Driver in VS Code + Troubleshooting
- Reading .xls and .xlsx Excel file using Apache POI Java Library
- IntelliJ: Error: Could not find or load main class, java.lang.ClassNotFoundException
- How to get Client IP address using Java Code Example
- Truncate table using Java JDBC Example
- Struts 2 : There is no Action mapped for namespace [/] and action name [form] associated with context path [/proj]
- How to get file path in Idea IntelliJ IDE
- Java Generics explained with simple definition and examples
- Java SE 8 Update 301 available with various bug fixes and security improvements
- Java: Collect Stream as ArrayList or LinkedList
- Java JDBC Connection with PostgreSQL Driver Example
- How to check if Java main thread is alive
- How to fix Java nio NoSuchFileException wile reading a file
- Java 8+ get Day of the Week Examples with LocalDateTime, DateTime, ZonalDateTime and Instant classes
- Ways to Convert Integer or int to Long in Java
- [Java] How to throws Exception using Functional Interface and Lambda code
- [Fix] Spring Boot: mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
- Java: The value of the local variable string is not used
- Java JDBC: Insert Java 8 LocalDate and Time using PreparedStatement
- Meaning of javascript:void(0) explained with example - JavaScript
- Indent/Prettify HTML File in Notepad++ - NotepadPlusPlus
- Android Studio setup was canceled - How to resume - Android-Studio
- Android M cannot run app using play button : Android Studio - Android
- How to Connect to AWS Windows EC2 UI Instance from M1 Mac (Updated 2022) - HowTos
- How to format or prettify XML in Notepad++ - NotepadPlusPlus
- Notepad++ Convert text from lower to upper case - NotepadPlusPlus
- How to integrate Salesforce CRM Sales and Service with Microsoft Teams - Teams