Mega Code Archive

 
Categories / Java / JSP
 

JSP Parsing using the DOM

/* <people>   <person>     <name>Joe</name>     <age>30</age>   </person>   <person>     <name>Rob</name>     <age>29</age>   </person> </people> */ <%@page import="org.w3c.dom.Node, org.w3c.dom.Element, org.w3c.dom.Document, org.w3c.dom.NodeList, javax.xml.parsers.DocumentBuilder, javax.xml.parsers.DocumentBuilderFactory" %> <%!   public boolean isTextNode(Node n)   {     return n.getNodeName().equals("#text");   } %> <html>   <head><title>Parsing using the DOM</title></head>   <body>     <%       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();       DocumentBuilder        builder = factory.newDocumentBuilder();       Document doc = builder.parse("http://localhost:8080/chapter02/people.xml");     %>     <h1>List of people</h1>     <table border="1">       <tr><th>Name</th><th>Age</th></tr>              <%       Element  root        = doc.getDocumentElement(); // "people" node       NodeList personNodes = root.getChildNodes();     // 2 "person" nodes       for (int i=0; i<personNodes.getLength(); i++)       {         Node currentPerson = personNodes.item(i);         if (isTextNode(currentPerson)) // skip whitespace node           continue;         NodeList nameAndAge = currentPerson.getChildNodes(); // "name" and "age" nodes     %>     <tr>     <%         for (int j=0; j<nameAndAge.getLength(); j++ )         {           Node currentItem = nameAndAge.item(j);           if ( isTextNode(currentItem))              continue;     %>       <td><%= currentItem.getFirstChild().getNodeValue() %></td>     <%         } // end of name & age loop     %>     </tr>     <%       } // end person loop     %>     </table>   </body> </html>