JDOM is, quite simply, a Java representation of an XML document. JDOM provides a way to represent that document for easy and efficient reading, manipulation, and writing. It has a straightforward API, is a lightweight and fast, and is optimized for the Java programmer. It’s an alternative to DOM and SAX, although it integrates well with both DOM and SAX.

JDOM is more user friendly in the way of accessing the XML document. Here is a simple example to show how to read a XML file in JDOM.

Tutorial …

1. Download the JDOM library

Download the library from JDOM official site
or
Using Maven

        <dependency>
		<groupId>jdom</groupId>
		<artifactId>jdom</artifactId>
		<version>1.0</version>
	</dependency>

2. Create a XML File

Create a simple XML file as following

<?xml version="1.0"?>
<company>
	<staff>
		<firstname>yong</firstname>
		<lastname>mook kim</lastname>
		<nickname>mkyong</nickname>
		<salary>100000</salary>
	</staff>
	<staff>
		<firstname>low</firstname>
		<lastname>yin fong</lastname>
		<nickname>fong fong</nickname>
		<salary>200000</salary>
	</staff>
</company>

3. Create a Java File

Create a JDOM parser Java file as following

package com.mkyong.common;
 
import java.io.File;
import java.io.IOException;
import java.util.List;
 
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
 
public class JDOMExample 
{
    public static void main( String[] args )
    {
 
    	SAXBuilder builder = new SAXBuilder();
    	File xmlFile = new File("c:\\file.xml");
 
    	try{
    		Document document = (Document) builder.build(xmlFile);
        	Element rootNode = document.getRootElement();
        	List list = rootNode.getChildren("staff");
 
        	for (int i=0; i< list.size(); i++)
                {
        		Element node = (Element) list.get(i);
 
        		System.out.println("First Name : "  + node.getChildText("firstname"));
      	      	        System.out.println("Last Name : "  + node.getChildText("lastname"));
      	      	        System.out.println("Nick Name : "  + node.getChildText("nickname"));
      	      	        System.out.println("Salary : "  + node.getChildText("salary"));
 
                 }
 
    	}catch(IOException io){
    		System.out.println(io.getMessage());
    	}catch(JDOMException jdomex){
    		System.out.println(jdomex.getMessage());
    	}
    }
}

4. Output

First Name : yong
Last Name : mook kim
Nick Name : mkyong
Salary : 100000
First Name : low
Last Name : yin fong
Nick Name : fong fong
Salary : 200000

P.S You can compare the syntax with SAX and DOM parser in the following two examples
- How to read XML file in Java – (SAX Parser)
- How to read XML file in Java – (DOM Parser)