import java.io.*; import java.net.*; import org.xml.sax.*; import oracle.xml.parser.v2.SAXParser; public class CreateBibData extends HandlerBase { String elementEncountered; String journalName, journalCode, vol, num, startPage, endPage, title; String authorNames[]; int numRows; int numAuthors; static public void main(String[] argv) { try { if (argv.length != 1) { // Must pass in the name of the XML file. System.err.println("Usage: CreateBibData filename"); System.exit(1); } // Create a new handler for the parser CreateBibData createData = new CreateBibData(); // Get an instance of the parser Parser parser = new SAXParser(); // Set Handlers in the parser parser.setDocumentHandler(createData); parser.setErrorHandler(createData); // Convert file to URL and parse try { parser.parse(createURL(argv[0]).toString()); } catch (SAXParseException e) { System.out.println(e.getMessage()); } catch (SAXException e) { System.out.println(e.getMessage()); } } catch (Exception e) { System.out.println(e.toString()); } } public void startDocument() { System.out.println("--Start of SQL Insert Statements"); authorNames = new String[20]; numRows=0; } public void endDocument() throws SAXException { System.out.println("--End of SQL Insert Statements"); System.out.println("Just generated "+numRows+ " SQL insert statements"); } public void startElement(String name, AttributeList atts) throws SAXException { elementEncountered = name; if (name.equals("Authors")) { numAuthors=0; } } public void endElement(String name) throws SAXException { if (name.equals("Article")) { String aid=journalCode+":"+vol+":"+num+":"+startPage; System.out.println("insert into articles values ('"+ aid +"','" + journalName+"',"+ vol+","+ num+","+ startPage+","+ endPage+",'"+ title+"');"); numRows++; for (int i=0; i