How to Parse/read XML file in Java


In this post we will see how to read xml in Java.

Here is the sample XML :

<!--?xml version="1.0"?-->  
<students>  
    <student>  
        <name>John</name>  
        <grade>B</grade>  
        <age>12</age>  
    </student>  
    <student>  
        <name>Mary</name>  
        <grade>A</grade>  
        <age>11</age>  
    </student>  
    <student>  
        <name>Simon</name>  
        <grade>A</grade>  
        <age>18</age>  
    </student>  
</students>


Now you can read this XML file in java using below code :

    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;  
       
    public class XMLParser {  
       
        public void getAllUserNames(String fileName) {  
            try {  
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
                DocumentBuilder db = dbf.newDocumentBuilder();  
                File file = new File(fileName);  
                if (file.exists()) {  
                    Document doc = db.parse(file);  
                    Element docEle = doc.getDocumentElement();  
       
                    // Print root element of the document  
                    System.out.println("Root element of the document: "  
                            + docEle.getNodeName());  
       
                    NodeList studentList = docEle.getElementsByTagName("student");  
       
                    // Print total student elements in document  
                    System.out  
                            .println("Total students: " + studentList.getLength());  
       
                    if (studentList != null && studentList.getLength() > 0) {  
                        for (int i = 0; i < studentList.getLength(); i++) {  
       
                            Node node = studentList.item(i);  
       
                            if (node.getNodeType() == Node.ELEMENT_NODE) {  
       
                                System.out  
                                        .println("=====================");  
       
                                Element e = (Element) node;  
                                NodeList nodeList = e.getElementsByTagName("name");  
                                System.out.println("Name: "  
                                        + nodeList.item(0).getChildNodes().item(0)  
                                                .getNodeValue());  
       
                                nodeList = e.getElementsByTagName("grade");  
                                System.out.println("Grade: "  
                                        + nodeList.item(0).getChildNodes().item(0)  
                                                .getNodeValue());  
       
                                nodeList = e.getElementsByTagName("age");  
                                System.out.println("Age: "  
                                        + nodeList.item(0).getChildNodes().item(0)  
                                                .getNodeValue());  
                            }  
                        }  
                    } else {  
                        System.exit(1);  
                    }  
                }  
            } catch (Exception e) {  
                System.out.println(e);  
            }  
        }  
        public static void main(String[] args) {  
       
            XMLParser parser = new XMLParser();  
            parser.getAllUserNames("c:\\test.xml");  
        }  
    } 
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s