You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by karthikeyan <ka...@aspiresys.com> on 2001/09/06 17:07:40 UTC

jsp xml

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: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org


JSP XML

Posted by karthikeyan <ka...@aspiresys.com>.
----- Original Message -----
From: karthikeyan <ka...@aspiresys.com>
To: <xe...@xml.apache.org>
Sent: Thursday, September 06, 2001 8:37 PM
Subject: jsp xml


>
> 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: xerces-j-dev-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-dev-help@xml.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org