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");
}