Hi,
Below is a program which i wrote to convert an XML file to a HTML file using (SAX)Simple API for XML.
But i keep getting the error "Error setting up XML Processor" whenever i run it and the HTML file produced is empty. Kindly run through and advise as i am very lost on this error.
Regards
Shilong
import org.xml.sax.*;
import java.util.*;
import java.io.*;
public class MarksProcessor extends HandlerBase{
private PrintWriter pw = null;
public MarksProcessor(
String file){
try{
pw = new PrintWriter(new FileWriter("Classmarks.html"));
}catch(IOException e){
System.out.println("File IO Error:" + e.getMessage());
}
try{
Class loadedClass = Class.forName("com.ibm.xml.parser.SAXDriver");
Parser xParser = (Parser)loadedClass.newInstance();
xParser.setDocumentHandler(this);
xParser.parse(file);
}catch(Exception e){
System.out.println("Error setting up XML Processor");
}
}
public static void main(String[] args){
MarksProcessor MarksProcessor1 = new MarksProcessor("Classmarks.xml");
}
public void error(SAXParseException se){
System.out.println("Error !! Problem with XML" + se.getMessage());
}
public void warning(SAXParseException se){
System.out.println("Warning ! Problem with XML" + se.getMessage());
}
public void startDocument() throws SAXException{
pw.println("<HTML>");
pw.println("<HEAD>");
pw.println("<TITLE>Student List</TITLE>");
pw.println("</HEAD>");
pw.println("<BODY>");
}
public void startElement(String elementName, AttributeList al) throws SAXException{
if(elementName.equalsIgnoreCase("STUDENTLIST")){
pw.println("<TABLE border='1'>");
pw.println("<TR>");
pw.println("<TD>STUDENTMARK</TD>");
pw.println("<TD>ASSIGNMENTNO</TD>");
pw.println("<TD>MARK</TD>");
pw.println("</TR>");
}else if(elementName.equalsIgnoreCase("STUDENTMARK")){
pw.println("<TR>");
}else{
pw.println("<TD>");
}
}
public void endElement(String elementName) throws SAXException{
if(elementName.equalsIgnoreCase("STUDENTLIST")){
pw.println("</TABLE>");
}else if(elementName.equalsIgnoreCase("STUDENTMARK")){
pw.println("</TR>");
}else{
pw.println("</TD>");
}
}
public void endDocument() throws SAXException{
pw.println("</BODY>");
pw.println("</HTML>");
pw.close();
}
public void characters(char[] chars, int start, int length)throws SAXException{
String stringRead = new String(chars, 1, length - 2);
System.out.println("String read is: " + stringRead );
}
}