Steps to read a XML file:
1. Create a Document with DocumentBuilder class.
2. Fetch the root element.
3. Process the child elements.
4. Process the attributes.
Example:
StudentTest.xml
<?xml version="1.0"?> <class> <student rollno="1"> <firstname>Swati</firstname> <lastname>Aneja</lastname> <marks>80</marks> </student> <student rollno="2"> <firstname>Prabhjot</firstname> <lastname>Kaur</lastname> <marks>70</marks> </student> <student rollno="3"> <firstname>Nidhi</firstname> <lastname>Gupta</lastname> <marks>75</marks> </student> </class> |
DOMParserReadTest.java
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * This class is used to parse XML document using DOM parser. * @author w3schools */ public class DOMParserReadTest { public static void main(String args[]){ try { //File Path String filePath = "D:\\StudentTest.xml"; //Read XML file. File inputFile = new File(filePath); //Create DocumentBuilderFactory object. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); //Get DocumentBuilder object. DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); //Parse XML file. Document document = dBuilder.parse(inputFile); document.getDocumentElement().normalize(); //Print root element. System.out.println("Root element:" + document.getDocumentElement().getNodeName()); //Get element list. NodeList nodeList = document.getElementsByTagName("student"); //Process element list. for (int temp = 0; temp < nodeList.getLength(); temp++) { Node nNode = nodeList.item(temp); System.out.println("\nCurrent Element:" + nNode.getNodeName()); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; System.out.println("Roll no: " + eElement.getAttribute("rollno")); System.out.println("First Name: " + eElement.getElementsByTagName("firstname") .item(0).getTextContent()); System.out.println("Last Name: " + eElement.getElementsByTagName("lastname") .item(0).getTextContent()); System.out.println("Marks: " + eElement.getElementsByTagName("marks") .item(0).getTextContent()); } } } catch (Exception e) { e.printStackTrace(); } } } |
Example:
Root element:class Current Element:student Roll no: 1 First Name: Swati Last Name: Aneja Marks: 80 Current Element:student Roll no: 2 First Name: Prabhjot Last Name: Kaur Marks: 70 Current Element:student Roll no: 3 First Name: Nidhi Last Name: Gupta Marks: 75 |
Download this example.
Next Topic: DOM XML parser to create xml file in java.
Previous Topic: Java DOM XML parser.