Ищу Xml парсер погоды с gismeteo.

yakutyanin

Постоялец
Регистрация
5 Янв 2009
Сообщения
74
Реакции
11
Ищу скрипт xml парсера погоды с сайта gismeteo, но не c сайта Для просмотра ссылки Войди или Зарегистрируйся , а с сайта Для просмотра ссылки Войди или Зарегистрируйся доступ к ней даётся после бесплатной регистарции на их сайте и получения персонального доступа. К стати бесплатно дают погоду на 3 дня в xml ввиде, но нигде не могу найти под неё xml парсер.

Вот в таком ввиде даётся xml
Код:
<weather>
<location id="4009" name="Белая Гора" name_r="в Белой Горе" tzone="660" cur_time="2012-02-19T23:33:00">
<day date="2012-02-20" risem="557" setm="1060" durm="503" tmin="-36" tmax="-32" pmin="764" pmax="764" wsmin="1" wsmax="1" hummin="76" hummax="81" cl="3" pt="2" pr="1" ts="0" icon="d.sun.c4.s1" descr="Пасмурно, небольшой снег" p="764" ws="1" wd="8" hum="77" grademax="2">
<forecast valid="2012-02-20T02:00:00" tod="0">
<values t="-35" p="764" ws="1" wd="8" hum="76" hi="-39" cl="3" pt="0" pr="0" ts="0" icon="n.moon.c4" descr="Пасмурно" grade="2"/>
</forecast>
<forecast valid="2012-02-20T08:00:00" tod="1">
<values t="-36" p="764" ws="1" wd="8" hum="76" hi="-38" cl="3" pt="2" pr="1" ts="0" icon="n.moon.c4.s1" descr="Пасмурно, небольшой снег" grade="1"/>
</forecast>
<forecast valid="2012-02-20T14:00:00" tod="2">
<values t="-33" p="764" ws="1" wd="8" hum="77" hi="-33" cl="3" pt="0" pr="0" ts="0" icon="d.sun.c4" descr="Пасмурно" grade="1"/>
</forecast>
<forecast valid="2012-02-20T20:00:00" tod="3">
<values t="-34" p="764" ws="1" wd="1" hum="80" hi="-36" cl="3" pt="0" pr="0" ts="0" icon="n.moon.c4" descr="Пасмурно" grade="2"/>
</forecast>
</day>
<day date="2012-02-21" risem="553" setm="1064" durm="511" tmin="-38" tmax="-30" pmin="763" pmax="764" wsmin="1" wsmax="2" hummin="76" hummax="79" cl="3" pt="2" pr="1" ts="0" icon="d.sun.c4.s1" descr="Пасмурно, небольшой снег" p="764" ws="2" wd="8" hum="77" grademax="2">
<forecast valid="2012-02-21T02:00:00" tod="0">
<values t="-37" p="764" ws="2" wd="8" hum="79" hi="-41" cl="3" pt="0" pr="0" ts="0" icon="n.moon.c4" descr="Пасмурно" grade="1"/>
</forecast>
<forecast valid="2012-02-21T08:00:00" tod="1">
<values t="-38" p="764" ws="2" wd="8" hum="78" hi="-42" cl="3" pt="0" pr="0" ts="0" icon="n.moon.c4" descr="Пасмурно" grade="1"/>
</forecast>
<forecast valid="2012-02-21T14:00:00" tod="2">
<values t="-31" p="764" ws="2" wd="8" hum="77" hi="-34" cl="3" pt="0" pr="0" ts="0" icon="d.sun.c4" descr="Пасмурно" grade="1"/>
</forecast>
<forecast valid="2012-02-21T20:00:00" tod="3">
<values t="-30" p="763" ws="2" wd="1" hum="78" hi="-34" cl="3" pt="2" pr="1" ts="0" icon="n.moon.c4.s1" descr="Пасмурно, небольшой снег" grade="2"/>
</forecast>
</day>
<day date="2012-02-22" risem="549" setm="1068" durm="519" tmin="-30" tmax="-29" pmin="762" pmax="765" wsmin="0" wsmax="2" hummin="77" hummax="82" cl="3" pt="2" pr="1" ts="0" icon="d.sun.c4.s1" descr="Пасмурно, небольшой снег" p="764" ws="0" wd="8" hum="77">
<forecast valid="2012-02-22T02:00:00" tod="0">
<values t="-30" p="762" ws="1" wd="1" hum="78" hi="-32" cl="3" pt="2" pr="1" ts="0" icon="n.moon.c4.s1" descr="Пасмурно, небольшой снег"/>
</forecast>
<forecast valid="2012-02-22T08:00:00" tod="1">
<values t="-30" p="763" ws="1" wd="1" hum="79" hi="-31" cl="3" pt="2" pr="1" ts="0" icon="n.moon.c4.s1" descr="Пасмурно, небольшой снег"/>
</forecast>
<forecast valid="2012-02-22T14:00:00" tod="2">
<values t="-29" p="764" ws="0" wd="8" hum="77" hi="-29" cl="3" pt="0" pr="0" ts="0" icon="d.sun.c4" descr="Пасмурно"/>
</forecast>
<forecast valid="2012-02-22T20:00:00" tod="3">
<values t="-29" p="765" ws="1" wd="8" hum="80" hi="-31" cl="3" pt="0" pr="0" ts="0" icon="n.moon.c4" descr="Пасмурно"/>
</forecast>
</day>
</location>
</weather>
 
Не знаю какая вам информация из всего этого нужна и что означают большинство полей, поэтому вывел все значения.
PHP:
$q = simplexml_load_string($s);
 
foreach($q->location->attributes() as $n => $v)
    $location[$n] = strval($v);
foreach($q->location->day->attributes() as $n => $v)
    $day[$n] = strval($v);
$i=0;
foreach($q->location->day->forecast as $f)
    {
    foreach($f->attributes() as $n => $v)
        $forecast[$i][$n] = strval($v);
    foreach($f->values->attributes() as $n => $v)
        $forecast[$i][$n] = strval($v);
    $i++;
    }
 
нужно все данные по погоде, но в выше приведенном коде ничего не понял.

вот описание формата данных.
Кодировка

UTF-8
Элемент weather

Этот элемент – главный в файле.
Элемент location

В одном файле могут быть данные для нескольких географических точек, параметры которых задаются в атрибутах элемента location.

id – идентификатор населенного пункта (int),

name – название населенного пункта на выбранном в запросе (например lang=ua) языке (string),

tzone – временное смещение в минутах относительно времени по Гринвичу GMT (int),

cur_time – текущее локальное время населённого пункта в формате ISO8601 (YYYY-mm-ddThh:ii:ss).
Элемент day

Сводные прогностические данные за день:

date – дата на которую передаются данные (YYYY-mm-ddThh:ii:ss),

risem – время восхода солнца (колличество минут от начала суток) (int),

setm – время захода солнца - колличество минут от начала суток (int),

durm – продолжительность светового дня - колличество минут от начала суток (int),

tmin – минимальная температура за день в градусах цельсия (int),

tmax – максимальная температура за день в градусах цельсия (int),

pmin – минимальное давление за день в мм.рт.ст. (int),

pmax – максимальное давление за день в мм.рт.ст. (int),

wsmin – минимальная скорость ветра за день в м/с (int),

wsmax – максимальная скорость ветра за день в м/с (int),

hummin – минимальная влажность за сутки в процентах (int),

hummax – минимальная влажность за сутки в процентах (int),

cl – максимальный балл облачности за сутки (0 - ясно, 1- малооблачно, 2 - облачно, 3 — пасмурно) (int),

pt – худший или максимальный тип осадков за сутки (0 или пусто – отсутствуют, 1 – дождь, 2 – снег) (int),

pr – максимальный суточный уровень осадков (0 или пусто – без осадков, 1 – небольшой дождь/снег, 2 – дождь/снег, 3 – сильный дождь/снег) (int),

ts – суточная вероятность грозы (0 или пусто – отсутствует, 1 – есть) (int),

icon – агрегированная суточная иконка погодного явления, сформированная из вышеприведённых cl, pt, pr, ts и взятая за 15 часов по местному времени города.
Путь к иконке можете составить так: Для просмотра ссылки Войди или Зарегистрируйся (string),

descr – агрегированное суточное описание погодного явления, сформированное из вышеприведённых cl, pt, pr, ts (string),

grademax – максимальный суточный балл геомагнитных бурь (int).

p – давление из дневной сводки (tod=2) в мм.рт.ст. (int).

ws – скорость ветра из дневной сводки (tod=2) в м/с (int).

wd – направление ветра из дневной сводки (tod=2), см.справочник ниже (int).

hum – влажность из дневной сводки (tod=2) в процентах (int).
Элемент forecast

Параметры прогноза:

valid– время, на которое действует прогноз в формате ISO8601 (YYYY-mm-ddThh:ii:ss),

tod – время суток: «0» – ночь , «1» – утро, «2» – день, «3» – вечер (int).
Элемент values

Этот элемент содержит значения различных метеорологических параметров.

t – температура воздуха (градусы цельсия) (int),

p – давление в мм.рт.столба (int), для перевода в гектопаскали разделить на 0.75 (int),

ws – скорость ветра в м/с (int) (int),

wd – направление ветра (см.справочник ниже), актуально только для тега values, (int),

hum – влажность в процентах (int),

hi – температура по ощущениям в градусах цельсия (int),

cl – балл облачности (0 - ясно, 1- малооблачно, 2 - облачно, 3 — пасмурно) (int),

pt – тип осадков (0 или пусто – отсутствуют, 1 – дождь, 2 – снег) (int),

pr – уровень осадков (0 или пусто – без осадков, 1 – небольшой дождь/снег, 2 – дождь/снег, 3 – сильный дождь/снег) (int),

ts – вероятность грозы (0 или пусто – отсутствует, 1 – есть) (int),

water_t – температура воды в градусах цельсия (int),

descr – описание погодного явления (string),

grade – балл геомагнитных бурь на определённую дату и время(1 - Нет заметных возмущений, 2 - Небольшие возмущения, 3 - Слабая геомагнитная буря, 4 - Малая геомагнитная буря, 5 - Умеренная геомагнитная буря, 6 - Сильная геомагнитная буря, 7 - Жесткий геомагнитный шторм, 8 - Экстремальный шторм) (int),

icon – иконка погодного явления "[day|night].[sun|moon].[cloudness](0-3).[rain](0-3).[storm]". Пример иконки "n.moon.c2.r1.st".
Расшифровка: Ночь, луна, облачность уровень 2, дождь уровень 1, гроза (string),

ph – код атмосферного явления (int)

Направление ветра
Если скорость ветра
0 Штиль
1 Северный
2 Северо-восточный
3 Восточный
4 Юго-восточный
5 Южный
6 Юго-западный
7 Западный
8 Северо-западный

было бы хорошо если бы скрипт кешировался и обновлял данные 4 раза в сутки
 
Назад
Сверху