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]