import javax.xml.parsers.*; import org.w3c.dom.*; import java.util.HashMap; import java.io.*; public class JDOM { public static void main(String args[]) { if (args.length != 1) { System.err.println("Usage: java JDOM "); return; } JDOM j = new JDOM(); j.parse(args[0]); } private HashMap m_weekDayNames; public JDOM() { 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"); } public void parse(String file) { Document doc = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); doc = db.parse(file); if (doc != null) printHTMLSchedule(doc); } catch (Exception e) { System.out.println(e.getMessage()); } } private void printHTMLSchedule(Node n) { PrintStream out = System.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(""); printHTMLSchedule( ((Document) n).getDocumentElement() ); out.println("
Daily Planner
 AMPM
\n\n"); break; case Node.ELEMENT_NODE: String name = n.getNodeName(); NodeList children = n.getChildNodes(); if (name.equals("dailyplanner")) { for (int i = 0; i < children.getLength(); i++) printHTMLSchedule(children.item(i)); } else if (m_weekDayNames.containsKey(name)) { out.print(""); out.print(m_weekDayNames.get(name)); out.println(""); for (int i = 0; i < children.getLength(); i++) { out.print(""); printAMPM(children.item(i)); out.print(""); } out.println(""); } break; } } private void printAMPM(Node n) { NodeList children = n.getChildren(); for (int i = 0; i < children.getLength(); i++) { Node c = children.item(i); if (c.getType() == Node.TEXT_NODE) { } } } }