
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).
More Posts related to Java,
- [Fix] java.time.zone.ZoneRulesException: Unknown time-zone ID
- Parse XML file in Java using DOM Parser
- Java equals method - Tutorial
- [Program] How to read three different values using Scanner in Java
- Java: The value of the local variable string is not used
- Display Output in Java Console as a Table
- How to detect Operating System using Java code
- Java 8 Streams map() with examples
- [Fix] java: incompatible types: incompatible parameter types in lambda expression error
- Add newline character Java code example (\r \n \r\n)
- List of Java Major Minor Version Numbers
- IntelliJ Keyboard Shortcut to remove unused imports [Java]
- Java - Check if array contains the value
- [Fix] Java Exception with Lambda - Cannot invoke because object is null
- How to declare and initialize Array in Java Programming
- [Solved] com.sun.xml.ws.transport.http.servlet.WSServletContextListener ClassNotFoundException
- XmlRpcException ConnectException connection refused error
- Create a Zip file using Java Code programmatically
- List of jar files for Jax-ws (SOAP) based Java Web Services
- How to fix Java HTTP java.net.UnknownHostException
- List of jars required for Struts2 project
- [fix] java: incompatible types: double cannot be converted to java.lang.Integer Generics
- Maven BUILD FAILURE: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin
- Get the current timestamp in Java
- java: unclosed string literal [Error]
More Posts:
- Display Output in Java Console as a Table - Java
- Spotlight Search file path location on Mac OS X Mavericks or Yosemite - Mac-OS-X
- JDK Location in Android Studio - Android-Studio
- How to do calculations in Mac Terminal - MacOS
- How to make a dummy phone call from Android Emulator device - Android
- How to install Zsh shell - HowTos
- SharePoint Online REST API not returning all list items and limit to only 100 rows - SharePoint
- Add X days from today in Command Line - HowTos