From 437e0708963037d233c487ceb0489ee35c6910d5 Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 10 Jun 2008 22:42:20 +0000 Subject: [PATCH] working on SAX git-svn-id: svn://anubis/gvsu@124 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs675/dom_sax/JDOM.java | 32 +++++++++----- cs675/dom_sax/JSAX.java | 92 ++++++++++++++++++++++++++++++++++++++++- cs675/dom_sax/Makefile | 2 +- 3 files changed, 113 insertions(+), 13 deletions(-) diff --git a/cs675/dom_sax/JDOM.java b/cs675/dom_sax/JDOM.java index 3566518..3562424 100644 --- a/cs675/dom_sax/JDOM.java +++ b/cs675/dom_sax/JDOM.java @@ -48,26 +48,36 @@ public class JDOM } } + private void printPre(PrintStream out) + { + out.println(""); + out.println(""); + out.println("Daily Planner"); + out.println(""); + out.println(""); + out.println("\n"); + } + + private void printPost(PrintStream out) + { + out.println("
Daily Planner
 AMPM
\n\n"); + } + private void printHTMLSchedule(Node n, PrintStream out) { int type = n.getNodeType(); switch (type) { case Node.DOCUMENT_NODE: - out.println(""); - out.println(""); - out.println("Daily Planner"); - out.println(""); - out.println(""); - out.println("\n"); + printPre(out); printHTMLSchedule( ((Document) n).getDocumentElement(), out ); - out.println("
Daily Planner
 AMPM
\n\n"); + printPost(out); break; case Node.ELEMENT_NODE: diff --git a/cs675/dom_sax/JSAX.java b/cs675/dom_sax/JSAX.java index d4cdaf2..2237ffe 100644 --- a/cs675/dom_sax/JSAX.java +++ b/cs675/dom_sax/JSAX.java @@ -1,7 +1,97 @@ -public class JSAX +import javax.xml.parsers.*; +import org.xml.sax.helpers.*; +import org.xml.sax.*; +import java.util.HashMap; +import java.io.*; + +public class JSAX extends DefaultHandler { public static void main(String args[]) { + if (args.length != 1) + { + System.err.println("Usage: java JSAX "); + return; + } + JSAX j = new JSAX(); + j.parse(args[0]); + } + + private HashMap m_weekDayNames; + private boolean m_displayText; + + public JSAX() + { + m_weekDayNames = new HashMap(); + m_weekDayNames.put("sunday", "Sunday"); + m_weekDayNames.put("monday", "Monday"); + m_weekDayNames.put("tuesday", "Tuesday"); + m_weekDayNames.put("wednesday", "Wednesday"); + m_weekDayNames.put("thursday", "Thursday"); + m_weekDayNames.put("friday", "Friday"); + m_weekDayNames.put("saturday", "Saturday"); + m_displayText = false; + } + + public void parse(String file) + { + printPre(System.out); + try + { + SAXParserFactory spf = SAXParserFactory.newInstance(); + SAXParser sp = spf.newSAXParser(); + sp.parse(file, this); + } + catch (Exception e) + { + System.out.println(e.getMessage()); + } + printPost(System.out); + } + + private void printPre(PrintStream out) + { + out.println(""); + out.println(""); + out.println("Daily Planner"); + out.println(""); + out.println(""); + out.println("\n"); + } + + private void printPost(PrintStream out) + { + out.println("
Daily Planner
 AMPM
\n\n"); + } + + public void startElement(String uri, String localName, + String qName, Attributes attrs) + { +// System.out.println("In " + qName); + if (m_weekDayNames.containsKey(qName)) + { + System.out.print(""); + System.out.print(m_weekDayNames.get(qName)); + System.out.print(""); + } + else if (qName.equals("am")) + { + } + } + + public void endElement(String uri, String localname, String qName) + { + if ( + } + + public void characters(char ch[], int start, int length) + { + String content = new String(ch, start, length).trim(); + System.out.println("characters: " + content); } } diff --git a/cs675/dom_sax/Makefile b/cs675/dom_sax/Makefile index 86adfed..6aa09a9 100644 --- a/cs675/dom_sax/Makefile +++ b/cs675/dom_sax/Makefile @@ -4,4 +4,4 @@ all: run: java JDOM test-sched.xml > test-sched-dom.html - + java JSAX test-sched.xml > test-sched-sax.html