Fidget
Новичок
XML парсинг - Не получается
Пытаюсь парсить новости из ХМЛ...
но что-то информация выводитс с ошибками (то текст выводится нормально, то не полностью, то вообще не выводится)
Код приведен ниже...
Пытаюсь парсить новости из ХМЛ...
но что-то информация выводитс с ошибками (то текст выводится нормально, то не полностью, то вообще не выводится)
Код приведен ниже...
PHP:<? require('conf.php'); $file = "http://news.yandex.ru/index.rss"; $news = array(); $currentNews = null; $index = null; function top($parser,$name,$attrs){ global $currentNews,$index; switch($name){ case 'channel': $news = array(); break; case 'item': $currentNews = array(); break; default: $index = $name; break; } } function bottom($parser,$name){ global $news,$currentNews,$index; if ((is_array($currentNews)) && ($name=='item')){ $news[] = $currentNews; $currentNews = null; } $index = null;} function data($parser,$data){ global $currentNews,$index; if ((is_array($currentNews)) && ($index)) $currentNews[$index] = $data; } $parser = xml_parser_create(); xml_set_element_handler($parser,'top','bottom'); xml_set_character_data_handler($parser,'data'); xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,false); $xml = join('',file($file)); if (!xml_parse($parser,$xml,true)) die(sprintf(Ошибка XML: %s в строке %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); xml_parser_free($parser); foreach($news as $n){ echo $n['title']."<br><hr>".$n['description']; } ?>