[ nezki @ 19.03.2007. 21:15 ] @
Pokusavam da isparsiram jedan xml fajl koji se nalazi na adresi http://informer.gismeteo.ru/xml/13274_1.xml na gismeteo sajtu. Hteo sam da iskoristim ovaj xml fajl da pokupim podatke o vremenskoj prognozi. Planirao sam da ga parsiram skriptom ciji se kod nalazi ovde ali dolazi do sledece greske. Da li neko moze da mi pomogne i objasni zasto? Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\wamp\www\xml\www_xml.php on line 6 Warning: fopen(http://informer.gismeteo.ru/xml/13274_1.xml) [function.fopen]: failed to open stream: No error in C:\wamp\www\xml\www_xml.php on line 6 Warning: feof(): supplied argument is not a valid stream resource in C:\wamp\www\xml\www_xml.php on line 8 . . . Code: <?php $file="http://informer.gismeteo.ru/xml/13274_1.xml"; $xml_parser = xml_parser_create(); $handle = fopen($file, "rb"); $contents = ''; while (!feof($handle)) { $data .= fread($handle, 8192); } fclose($handle); xml_parse_into_struct($xml_parser, $data, $vals, $index); xml_parser_free($xml_parser); $params = array(); $level = array(); foreach ($vals as $xml_elem) { if ($xml_elem['type'] == 'open') { if (array_key_exists('attributes',$xml_elem)) { list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']); } else { $level[$xml_elem['level']] = $xml_elem['tag']; } } if ($xml_elem['type'] == 'complete') { $start_level = 1; $php_stmt = '$params'; while($start_level < $xml_elem['level']) { $php_stmt .= '[$level['.$start_level.']]'; $start_level++; } $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];'; eval($php_stmt); } } echo "<pre>"; print_r ($params); echo "</pre>"; ?> P.s. Da li neko mozda ima neko gotovu skriptu KOJA 100% RADI za vremensku prognozu i bio bi rad da je podeli sa drugarima sa foruma bilo bi super :) jer ja imam bar 20 skripti koje sam skinuo sa neta i odavde sa foruma i sve sam ih sredjivao i doradivao ali bas nijedna ne radi. Poz svima |