\n"; echo "\n"; break; case 'entry' : echo ""; break; case 'month' : echo ""; break; case 'date' : if($last_tag!='month') echo " "; echo ""; break; case 'day' : echo ""; break; case 'topic' : echo ""; break; case 'reference' : if($last_tag=='day') echo " "; echo ""; break; case 'assign' : if($last_tag=='day') echo "  "; if($last_tag=='topic') echo " "; echo ""; break; case 'note' : // only allowed inside with no topic text echo ""; break; case 'due' : // only allowed inside echo ""; break; case 'due2' : // due with assign on same date echo "
"; break; default: break; } } else { echo "ERROR - invalid tag $name
\n"; } } function endElement($parser,$name,$attrs='') { global $close_tags,$current_tag,$last_tag; if($format=$close_tags[$name]) { switch($name) { case 'schedule' : echo "\n"; break; case 'head' : echo "
Tentative Schedule
Spring 2003

"; echo "

**** indicates modification

\n"; echo "\n"; break; case 'entry' : switch($current_tag) { case 'day' : echo ""; case 'topic' : echo ""; case 'reference' : echo ""; break; default: break; } echo "\n"; break; case 'month' : echo " \n"; break; case 'date' : echo "\n"; break; case 'day' : echo ""; break; case 'topic' : echo " "; break; case 'reference' : echo " "; break; case 'assign' : echo " "; break; case 'note' : echo ""; break; case 'due' : echo " DUE"; break; case 'due2' : echo " DUE"; break; default: break; } } else { echo "ERROR - invalid tag $name
\n"; } } function characterData($parser,$chardata) { global $current_tag,$headflag; if($current_tag=='head' && $headflag==0) { echo "

"; $headflag=1; } // strip leading and trailing whitespace if($chardata!="\n" && $chardata!=" " && $chardata!="\t") { echo $chardata; } } $open_tags=array ( "schedule" => "", "entry" => "", "head" => "", "month" => "", "date" => "", "day" => "", "topic" => "", "reference" => "", "assign" => "", "due" => "", "due2" => "", "note" => "" ); $close_tags=array ( "schedule" => "", "entry" => "", "head" => "", "month" => "", "date" => "", "day" => "", "topic" => "", "reference" => "", "assign" => "", "due" => "", "due2" => "", "note" => "" ); $current_tag=""; $xml_parser=xml_parser_create(); xml_set_element_handler($xml_parser,'startElement','endElement'); xml_set_character_data_handler($xml_parser,'characterData'); xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,false); xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,true); $fp=fopen("schedule.xml","r"); $headflag=0; while($data=fread($fp,80)) { if(!(xml_parse($xml_parser,$data,feof($fp)))) { echo "ERROR - parser failure: "; echo xml_error_string(xml_get_error_code($xml_parser)); echo " at line number ".xml_get_current_line_number($xml_parser)."
\n"; exit(); } } xml_parser_free($xml_parser); exit(); ?>