xml parsing

From: Date: Sun, 19 May 2002 02:02:24 +0000
Subject: xml parsing
Groups: php.general 
Request: Send a blank email to php-general+get-98314@lists.php.net to get a copy of this message
I got this example from Beginning PHP 4. Unfortunately, I cant get to wrox's site to see if there were any errata updates for this piece of code, but for the life of me, I dont know whats wrong with it. All its displaying is '-'. If anyone could direct me to where its broken, Ill be very grateful.. ------------------------------------------------ <?php if (!($fp = fopen("http://freshmeat.net/backend/fm.rdf", "r"))) die("Cant fetch"); $item_counter = 0; $in_item_tag = 0; $fm_current_tag_state = ''; $fm_headline_data = array(); function startElementHandler($parser, $element_name, $element_attribs) { global $item_counter, $in_item_tag, $fm_current_tag_state, $fm_headline_data; if ($element_name == "ITEM") {
       $in_item_tag = 1;
} if ($in_item_tag == 1) {
       $fm_curent_tag_state = $element_name;
} else {
       $fm_current_tag_state = '';
} } function endElementHandler($parser, $element_name) { global $item_counter, $in_item_tag, $fm_current_tag_state, $fm_headline_data; $fm_current_tag_state = ''; if ($element_name == "ITEM") {
       $item_counter++;
       $in_item_tag = 0;
} } function characterDataHandler($parser, $data) { global $itme_counter, $in_item_tag, $fm_current_tag_state, $fm_headline_data; if ($fm_current_tag_state == '' || $in_item_tag == 0) return; if ($fm_current_tag_state == "TITLE") $fm_headline_data[$item_counter]['title'] = $data; if ($fm_current_tag_state == "LINK") $fm_headline_data[$item_counter]['link'] = $data; if ($fm_current_tag_state == "DESCRIPTION") $fm_headline_data[$item_counter]['description'] = $data; } if (!($xml_parser = xml_parser_create())) die("Parser Problem"); xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler"); xml_set_character_data_handler($xml_parser, "characterDataHandler"); while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) {
       break;
} } xml_parser_free($xml_parser); for($i=0; $i < $item_counter; $i++) { printf("<a href=\"%s\">%s</a> - %s<br>\n", $fm_headlines_data[$i]['link'],
                                              $fm_headlines_data[$i]['title'],
                                              $fm_headlines_data[$i]['description']
                                              );
} ?>

« previous php.general (#98314) next »