|
|
|
| Здравствуйте.
Кто сталкивался с написанием парсера для пагоды Gismeteo.ru
Не пойму как именно извлекать данные с помощью SimpleXML
Как обращатся к данным XML файла. Просто все примеры что есть в интернете заточены под RSS ленты, и мне не понятно! | |
|
|
|
|
|
|
|
для: sochinec
(03.05.2009 в 10:47)
| | Вот часть кода из работающего скрипта, сам делал:
$town = $_GET['town'];
$file = 'http://informer.gismeteo.ru/xml/'.$town.'_1.xml';
$xml = simplexml_load_file($file);
$dats = array();//массив с датами
$osad = array();//массив с осадками
$davl = array();//массив с давлением
$temp = array();//массив с температурой
$wind = array();//массив с ветром
$vlag = array();//массив с влажностью
$komf = array();//массив с комфортной температурой
$txto = array();//массив с выводимой инфой.
$mnth = array ('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');//месяц
$ned = array ('Воскресение', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота');//День недели
$sut = array ('ночь', 'утро', 'день', 'вечер');//Врамя суток
$obl = array ('ясно', 'малооблачно', 'облачно', 'пасмурно');//Облачность
$tosad = array ('дождь', 'ливень', 'снег', 'снег', 'гроза', '-', 'без осадков');//Осадки
$nwnd = array ('серевный', 'северо-восточный', 'восточный', 'юго-восточный', 'южный', 'юго-западный', 'западный', 'северо-зепедный');//напрвление ветра
$sname = $xml->REPORT->TOWN[0]['sname'];//Название города
$shir = $xml->REPORT->TOWN[0]['latitude'];//Широта
$dolg = $xml->REPORT->TOWN[0]['longitude'];//Долгота
for ($i = 0; $i <= 3; $i++)
{
$dats[$i]['day'] = $xml->REPORT->TOWN[0]->FORECAST[$i]['day'];
$dats[$i]['month'] = $mnth [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]['month'] - 1];
$dats[$i]['year'] = $xml->REPORT->TOWN[0]->FORECAST[$i]['year'];
$dats[$i]['tod'] = $sut [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]['tod']];
$dats[$i]['weekday'] = $ned [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]['weekday'] - 1];
$osad[$i]['cloud'] = $obl [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]->PHENOMENA['cloudiness']];
$osad[$i]['osad'] = $tosad [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]->PHENOMENA['precipitation'] - 4];
$osad[$i]['vozmo'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->PHENOMENA['rpower'];
$osad[$i]['vozmg'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->PHENOMENA['spower'];
$davl[$i]['max'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->PRESSURE['max'];
$davl[$i]['min'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->PRESSURE['min'];
$temp[$i]['max'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->TEMPERATURE['max'];
$temp[$i]['min'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->TEMPERATURE['min'];
$wind[$i]['max'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->WIND['max'];
$wind[$i]['min'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->WIND['min'];
$wind[$i]['napr'] = $nwnd [(int)$xml->REPORT->TOWN[0]->FORECAST[$i]->WIND['direction']];
$vlag[$i]['max'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->RELWET['max'];
$vlag[$i]['min'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->RELWET['min'];
$komf[$i]['max'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->HEAT['max'];
$komf[$i]['min'] = $xml->REPORT->TOWN[0]->FORECAST[$i]->HEAT['min'];
}
|
если что, можешь посмотреть как он работает: http://www.angelcorpc.ath.cx | |
|
|
|