Hi Guys,

  I am using the below class in my jsp file to read an xml and print only
the necessary element value.  I got this example from a book and it is
working great but i feel for reading an element value from an xml this is
really a huge code.  I require your suggestions on how to make the Java Code
and the code in the JSP file smaller and effiecient.  Any code changes or
new codes are welcome.

  XML File
  -----------

<?xml version='1.0'?>
<SearchResult>
  <ResultHeader>
    <MemberID>12345</MemberID>
    <SearchType>quick</SearchType>
    <Result>success</Result>
    <CurrentPage>5</CurrentPage>
    <TotalPages>10</TotalPages>
  </ResultHeader>
</SearchResult>

  Java File
  -----------

package postcards;

import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;

public class SAXHandler extends HandlerBase {
  private Hashtable table = new Hashtable();
  private String currentElement = null;
  private String currentValue = null;

  public void setTable(Hashtable table) {
    this.table = table;
  }

  public Hashtable getTable() {
    return table;
  }

  public void startElement(String tag, AttributeList attrs)
    throws SAXException {
    currentElement = tag;
  }

  public void characters(char[] ch, int start, int length)
    throws SAXException {
    currentValue = new String(ch, start, length);
  }

  public void endElement(String name) throws SAXException {
    if(currentElement.equals(name)) {
      table.put(currentElement, currentValue);
    }
  }
}

  JSP File
  ----------

<%@ page import="java.io.*,
                 java.util.Hashtable,
                 org.w3c.dom.*,
                 org.xml.sax.*,
                 javax.xml.parsers.SAXParserFactory,
                 javax.xml.parsers.SAXParser,
                 postcards.SAXHandler" %>
<%
    File file =
    new
File(getServletConfig().getServletContext().getRealPath("/xml/usersearch.xml
"));
    file://out.println(file);
    FileReader reader = new FileReader(file);
    Parser parser;
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    SAXHandler handler = new SAXHandler();
    sp.parse(new InputSource(reader), handler);
    Hashtable cfgTable = handler.getTable();
%>
<html>
  <head>
    <title></title>
    <meta name='description' content=''>
    <meta name='keywords' content=''>
  </head>
  <body bgcolor='#ffffff' text='#000000' link='#0000FF' vlink='#800080'>
    Member ID : <%= (String)cfgTable.get(new String("MemberID")) %><br>
    TotalPages : <%= (String)cfgTable.get(new String("TotalPages")) %>
  </body>
</html>

  Waiting for your earliest reply,

  With Regard,

b.karthikeyan.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to