Java JDOM2 Tutorial with Examples
1. Introduction
JDOM is an in-memory XML model that can be used to read, write, create and modify XML Documents. JDOM is similar to DOM in that they both provide an in-memory XML document model.

- DOM is designed to work the same in multiple languages (C, C++, ECMAScript, Java, JScript, Lingo, PHP, PLSQL, and Python),
 
- JDOM is designed only for Java and uses the natural Java-specific features that the DOM model avoids. For this reason JDOM intentionally does not follow the w3c DOM standard. JDOM is not an XML parser but it can use a SAX, StAX or DOM parser to build the JDOM document. JDOM versions since JDOM 2.0.0 (JDOM2) all use the native language features of Java6 and later like Generics, Enums, var-args, co-variant return types, etc.
 
See more:
2. Library
Unlike DOM available in JDK , JDOM you have to download the library to use:
You can download the JDOM2 library at homepage:
Or simply download from Maven Repository:


3. Begin Example
This is the image after completion of the Project:

department-datas.xml
<?xml version="1.0"?>
<department>
  <employee>
      <empNo>E01</empNo>
      <empName>KING</empName>
      <hireDate>17-11-1981</hireDate>
      <salary>100000</salary>
  </employee>
  <employee>
      <empNo>E02</empNo>
      <empName>JONES</empName>
      <hireDate>02-04-1981</hireDate>
      <salary>200000</salary>
  </employee>
</department>ReadXMLFile.java
package org.o7planning.tutorial.jdom2;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
public class ReadXMLFile {
   public static void main(String[] args) {
       SAXBuilder builder = new SAXBuilder();
       File xmlFile = new File("department-datas.xml");
       
       System.out.println("Parsing FILE: "+ xmlFile.getAbsolutePath());
       try {
           Document document = (Document) builder.build(xmlFile);
           Element rootNode = document.getRootElement();
           List<Element> list = rootNode.getChildren("employee");
           for (int i = 0; i < list.size(); i++) {
               Element node = (Element) list.get(i);
               
               System.out.println(" ------ ");
               
               System.out.println("Emp No : " + node.getChildText("empNo"));
               
               System.out.println("Emp Name : " + node.getChildText("empName"));
               
               System.out.println("Hire Date : " + node.getChildText("hireDate"));
               
               System.out.println("Salary : " + node.getChildText("salary"));
           }
       } catch (IOException e) {
           System.out.println(e.getMessage());
       } catch (JDOMException e) {
           System.out.println(e.getMessage());
       }
   }
}Results after running ReadXMLFile class:

Java Open Source Libraries
- Java JSON Processing API Tutorial (JSONP)
 - Using Scribe OAuth Java API with Google OAuth2
 - Get Hardware information in Java application
 - Restfb Java API for Facebook
 - Create Credentials for Google Drive API
 - Java JDOM2 Tutorial with Examples
 - Java XStream Tutorial with Examples
 - Jsoup Java Html Parser Tutorial with Examples
 - Retrieve Geographic information based on IP Address using GeoIP2 Java API
 - Read and Write Excel file in Java using Apache POI
 - Explore the Facebook Graph API
 - Java Sejda WebP ImageIO convert Images to WEBP
 - Java JAVE Convert audio and video to mp3
 - Manipulating files and folders on Google Drive using Java
 
                Show More