how to parse xml file in JAVA?

In this post I am going to show how we can parse the xml file in java and fetch the details present inside xml in our JAVA program. It can be helpful where you have large data and does not want to take input from user for the data. Parsing the JSON for data is better technique than xml parsing , but xml parsing is helpful when we dont want to use third party library in our project, because we have JAVA classes to parse the xml file.


                 


We can parse the xml file using DOM parser, which treat xml tags as nodes of the tree and parse it node by node.

details.xml

<?xml version="0.1"?>
<employee>
<manager>
<firstname>Walter</firstname>
<lastname>White</lastname>
<SSID>12345</SSID>
<Phone>123456789</phone>
</manager>
<manager>
<firstname>Jesse</firstname>
<lastname>Pinkman</lastname>
<SSID>54321</SSID>
<Phone>987654321</phone>
</manager>
</employee>

XmlParser.java

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;


public class xmlParser {

    public void main(String args[]){
        String file = args[0];
        File configFile = new File(file);
        configParser cp = new configParser();
        cp.configXMLParse(configFile);
    }

    public static class configParser {
        public void configXMLParse(File file){
            try {
               // parse the file using Document Builder
                DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document document = dBuilder.parse(file);

                // Get the list of elements with tag "manager"
                NodeList List = document.getElementsByTagName("manager");

               // Iterate till the length of the tag "manager"
                for (int i = 0; i < List.getLength(); i++) {

                    Node Node = List.item(i);

                    System.out.println("\nCurrent Element :" + Node.getNodeName());

                   // If the node type is ELEMENT_NODE get all the items using tag name.
                    if (Node.getNodeType() == Node.ELEMENT_NODE) {

                        Element element = (Element) Node;

                        System.out.println("Manager id : " + element.getAttribute("id"));
                        System.out.println("First Name : " + element.getElementsByTagName("firstname").item(0).getTextContent());
                        System.out.println("Last Name : " + element.getElementsByTagName("lastname").item(0).getTextContent());
                        System.out.println("SSID : " + element.getElementsByTagName("SSID").item(0).getTextContent());
                        System.out.println("Phone : " + element.getElementsByTagName("phone").item(0).getTextContent());

                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }
}


Comments

Popular posts from this blog

Tricky Questions or Puzzles in C

Program to uncompress a string ie a2b3c4 to aabbbcccc

Number series arrangement puzzles