Sample Java code using SAX

Complete Java source code is Books.java

to compile it type

javac -sourcepath .\My_Src -classpath .\My_Class; .\My_Src\Books.java -d .\My_Class

and to run it

java -cp .\My_Class huan66283.Sep16.Books Books.xml Books.html

The source file is in My_Src, the class files are in My_Class

and the xml and html files are in My_Data subdirectories.

main method

public static void main(String[] args) {

try {

Books book = new Books();

book.processWithSAX("My_Data/"+ args[0]);

String output = book.toString();

System.out.println("Saving result to " + args[1]);

FileWriter fw = new FileWriter(new File("My_Data/",args[1]));

fw.write(output, 0, output.length());

fw.flush();

}

catch (Throwable t) {

t.printStackTrace();

}

and the method

public void processWithSAX(String urlString) throws Exception {

System.out.println("Processing URL " + urlString);

htmlOut = new StringBuffer("<HTML><title>My Shopping Cart</title>\n<BODY bgcolor='#FFFFFF' text='#000066'>\n");

htmlOut.append("<H1>The books for fall 2004 semester </H1>\n");

htmlOut.append("<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=1 WIDTH='700'><TR bgcolor='#000000'>\n");

htmlOut.append("<TD ALIGN=LEFT><b><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Description:</font></b></TD>\n");

htmlOut.append("<TD ALIGN=LEFT><b><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Unit Price</font></b></TD>\n");

htmlOut.append("<TD ALIGN=LEFT><b><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>Quantity</font></b></TD>\n");

htmlOut.append("<TD ALIGN=LEFT><b><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FFFFFF'>$ Item Total</font></b></TD></TR>\n");

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp = spf.newSAXParser();

ParserAdapter pa = new ParserAdapter(sp.getParser());

pa.setContentHandler(this);

pa.parse(urlString);

htmlOut.append("\n<TR><TD colspan='3' align='right'><font face='Verdana, Arial, Helvetica, sans-serif' size='2'><b>Total:</b></font></TD>\n");

htmlOut.append("<TD ALIGN=LEFT><font face='Verdana, Arial, Helvetica, sans-serif' size='2'>\n");

htmlOut.append(Total);

htmlOut.append("\n</font></TD></TR>\n");

htmlOut.append("</TABLE>\n");

htmlOut.append("<br><p><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><b>by Min Hua Huang</b><br>\n");

htmlOut.append("(This program uses SAX generate <b>html </b>from <b>xml</b>)</font></p>\n");

htmlOut.append("</BODY></HTML>\n");

}