The Library

"; break; case "TITLE": echo ""; break; case "TITLE": echo ""; break; case "AUTHOR": echo ""; break; case "PRICE": echo ""; break; case "RATING": echo ""; break; default: break; } // clear current tag variable $currentTag = ""; } // process data between tags function characterData($parser, $data) { global $currentTag; // text ratings $ratings = array("Words fail me!", "Terrible", "Bad", "Indifferent", "Good", "Excellent"); // format the data switch ($currentTag) { case "TITLE": // italics for title echo "$data"; break; case "AUTHOR": echo $data; break; case "PRICE": // add currency symbol for price echo "$" . $data; break; case "RATING": // get text rating echo $ratings[$data]; break; default: break; } } // initialize parser $xml_parser = xml_parser_create(); // set callback functions xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); // open XML file if (!($fp = fopen($file, "r"))) { die("Cannot locate XML data file: $file"); } // read and parse data while ($data = fread($fp, 4096)) { // error handler if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } // clean up xml_parser_free($xml_parser); ?>
Title Author Price User Rating
"; break; case "AUTHOR": echo ""; break; case "PRICE": echo ""; break; case "RATING": echo ""; break; default: break; } } function endElement($parser, $name) { global $currentTag; // output closing HTML tags switch ($name) { case "BOOK": echo "