How to Parse/read XML file in Java

Here is the sample XML :
  1. <!--?xml version="1.0"?-->  
  2. <students>  
  3.     <student>  
  4.         <name>John</name>  
  5.         <grade>B</grade>  
  6.         <age>12</age>  
  7.     </student>  
  8.     <student>  
  9.         <name>Mary</name>  
  10.         <grade>A</grade>  
  11.         <age>11</age>  
  12.     </student>  
  13.     <student>  
  14.         <name>Simon</name>  
  15.         <grade>A</grade>  
  16.         <age>18</age>  
  17.     </student>  
  18. </students> 
Now you can read this XML file in java using below code :
  1. import java.io.File;  
  2. import javax.xml.parsers.DocumentBuilder;  
  3. import javax.xml.parsers.DocumentBuilderFactory;  
  4.    
  5. import org.w3c.dom.Document;  
  6. import org.w3c.dom.Element;  
  7. import org.w3c.dom.Node;  
  8. import org.w3c.dom.NodeList;  
  9.    
  10. public class XMLParser {  
  11.    
  12.     public void getAllUserNames(String fileName) {  
  13.         try {  
  14.             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
  15.             DocumentBuilder db = dbf.newDocumentBuilder();  
  16.             File file = new File(fileName);  
  17.             if (file.exists()) {  
  18.                 Document doc = db.parse(file);  
  19.                 Element docEle = doc.getDocumentElement();  
  20.    
  21.                 // Print root element of the document  
  22.                 System.out.println("Root element of the document: "  
  23.                         + docEle.getNodeName());  
  24.    
  25.                 NodeList studentList = docEle.getElementsByTagName("student");  
  26.    
  27.                 // Print total student elements in document  
  28.                 System.out  
  29.                         .println("Total students: " + studentList.getLength());  
  30.    
  31.                 if (studentList != null && studentList.getLength() > 0) {  
  32.                     for (int i = 0; i < studentList.getLength(); i++) {  
  33.    
  34.                         Node node = studentList.item(i);  
  35.    
  36.                         if (node.getNodeType() == Node.ELEMENT_NODE) {  
  37.    
  38.                             System.out  
  39.                                     .println("=====================");  
  40.    
  41.                             Element e = (Element) node;  
  42.                             NodeList nodeList = e.getElementsByTagName("name");  
  43.                             System.out.println("Name: "  
  44.                                     + nodeList.item(0).getChildNodes().item(0)  
  45.                                             .getNodeValue());  
  46.    
  47.                             nodeList = e.getElementsByTagName("grade");  
  48.                             System.out.println("Grade: "  
  49.                                     + nodeList.item(0).getChildNodes().item(0)  
  50.                                             .getNodeValue());  
  51.    
  52.                             nodeList = e.getElementsByTagName("age");  
  53.                             System.out.println("Age: "  
  54.                                     + nodeList.item(0).getChildNodes().item(0)  
  55.                                             .getNodeValue());  
  56.                         }  
  57.                     }  
  58.                 } else {  
  59.                     System.exit(1);  
  60.                 }  
  61.             }  
  62.         } catch (Exception e) {  
  63.             System.out.println(e);  
  64.         }  
  65.     }  
  66.     public static void main(String[] args) {  
  67.    
  68.         XMLParser parser = new XMLParser();  
  69.         parser.getAllUserNames("c:\\test.xml");  
  70.     }