[an error occurred while processing this directive]

Parsing The XML File using DOM parser in JSP

                         

W3C (World Wide Web Consortium) started the DOM (Document Object Model) parser, that is the platform independent and language-neutral interface. Programs can dynamically manipulate the content, structure and style of documents. The document is processed and the results after the processing are displayed on to the present page. DOM parser is not an ideal technology for JSP because JSTL (Java Server Pages Standard Tag Library) also provides actions for parsing an XML document.

This example helps you to parsing the xml page in jsp. 'parsingxml.jsp' uses 'roseindia.xml' file and display its content to the jsp page.

roseindia.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<roseindia>

  <employee>
    <name>Sandeep Kumar Suman</name>
    <date-of-birth>15-02-84</date-of-birth>
  <city>Gorakhpur</city>
  </employee>

  <employee>
    <name>Amit Raghuvanshi</name>
    <date-of-birth>19-12-86</date-of-birth>
  <city>Lucknow</city>
  </employee>

  <employee>
    <name>Vineet Bansal</name>
    <date-of-birth>05-02-83</date-of-birth>
  <city>Sonipat</city>
  </employee>

  <employee>
    <name>Vikas Singh</name>
    <date-of-birth>05-12-88</date-of-birth>
  <city>Hazipur</city>
  </employee>

  <employee>
    <name>Anusmita Singh</name>
    <date-of-birth>28-12-84</date-of-birth>
  <city>Bareilly</city>
  </employee>

</roseindia>

parsingxml.jsp

<%@page import="org.w3c.dom.*, javax.xml.parsers.*" %>
<%
  DocumentBuilderFactory docFactory = 
  DocumentBuilderFactory.newInstance
();
  DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
  Document doc = docBuilder.parse
(
"http://localhost:8080/ServletExample/roseindia.xml");
%>
<%!
  public boolean isTextNode(Node n){
    return n.getNodeName().equals("#text");
  }
%>
<html>
  <head><title>Parsing of xml using DOM Parser</title></head>
  <body>    
    <h2><font color='green'>Employees of Roseindia</font></h2>
    <table border="2">
      <tr>
        <th>Name of Employee</th>
        <th>Date of Birth</th>
        <th>City</th>
      </tr>
        <%
          Element  element = doc.getDocumentElement()
          NodeList personNodes = element.getChildNodes();     
          for (int i=0; i<personNodes.getLength(); i++){
            Node emp = personNodes.item(i);
            if (isTextNode(emp))
              continue;
            NodeList NameDOBCity = emp.getChildNodes()
        %>
      <tr>
        <%
          for (int j=0; j<NameDOBCity.getLength(); j++ ){
            Node node = NameDOBCity.item(j);
            if isTextNode(node)) 
              continue;
        %>
        <td><%= node.getFirstChild().getNodeValue() %></td>
        <%
          
        %>
      </tr>
        <%
          }
        %>
    </table>
  </body>
</html>

Running The program on this url: http://localhost:8080/ServletExample/jsp/parsingxml.jsp  the following output will be generated.

Download Source Code

                         

[an error occurred while processing this directive]