Tuesday, 13 October 2015

Read Data From XML using DOM Parser


Use Xerces – 2.0.2.jar if using jdk 1.6.

Directory structure in eclipse:




Sky.xml

 <?xml version="1.0"?>
<!DOCTYPE sky SYSTEM "sky.dtd">
<sky>
<employee>
<name>Sumit Kumar</name>
<email>sky@outlook.com</email>
</employee>
<employee>
<name>Sunil Kumar</name>
<email>skumar102@outlook.com</email>
</employee>
</sky>


Sky.dtd

<!ELEMENT sky (employee*)>
<!ELEMENT employee (name,email)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>


SKYDOMReader.java:

package com.sky.parse.dom;

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 SKYDOMReader {
      public static void main(String[] args) {
     
            try{
            DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
            DocumentBuilder documentBuilder=builderFactory.newDocumentBuilder();
            Document document=documentBuilder.parse("src/sky.xml");
            System.out.println("Root element :" + document.getDocumentElement().getNodeName());
            NodeList nodeList=document.getElementsByTagName("employee");
            for (int i = 0; i < nodeList.getLength(); i++){
                  Node node=nodeList.item(i);
                  Element eElement = (Element) node;
                      System.out.println("Name : "  + eElement.getElementsByTagName("name").item(0).getTextContent());
                      System.out.println("email : "   + eElement.getElementsByTagName("email").item(0).getTextContent());
            }
            }catch (Exception e) {
                  e.printStackTrace();
            }
           
      }
}



Output:

Root element :sky
Name : Sumit Kumar
email : sky@outlook.com
Name : Sunil Kumar
email : skumar102@outlook.com

No comments:

Post a Comment