Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: XML Gismeteo

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: SimpleXML
Kubert
Отправлено: 25 Августа, 2011 - 18:02:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




Чтото у меня не получается вывести значение атрибута у любого из элементов...

xml => Москва к примеру: http://informer[dot]gismeteo[dot]ru/xml/27612_1[dot]xml

PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_string('http://informer.gismeteo.ru/xml/27612_1.xml');
  3. foreach($xml->REPORT[0]->attributes() as $a => $b) {
  4.     echo $a,'="',$b,"\"\n";
  5. }
  6.  
 
 Top
EuGen Администратор
Отправлено: 26 Августа, 2011 - 09:12:01
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Через var_dump посмотрите как устроен нужный объект.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Kubert
Отправлено: 26 Августа, 2011 - 09:36:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




EuGen пишет:
Через var_dump посмотрите как устроен нужный объект.


Да я смотрел!

Кстати сейчас попробывал и у меня написано: bool(false)
Хотя файл отвечает!

<?php
$xml = simplexml_load_string('http://informer.gismeteo.ru/xml/27612_1.xml');
var_dump($xml);
?>
 
 Top
LIME
Отправлено: 26 Августа, 2011 - 09:44:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Kuberthttp://www.php.su/functions/?simplexml-load-file
не читает ваша фция хмл из файла

(Отредактировано автором: 26 Августа, 2011 - 09:45:47)

 
 Top
Мелкий Супермодератор
Отправлено: 26 Августа, 2011 - 09:46:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Kubert пишет:
simplexml_load_string('http:/

Не понял
Поглядите описание функции.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 26 Августа, 2011 - 09:47:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




замечание прочтите внимательно
 
 Top
Kubert
Отправлено: 26 Августа, 2011 - 10:12:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




EuGen, LIME, Мелкий Закатив глазки

Получилось)
Спасибо!

(Отредактировано автором: 26 Августа, 2011 - 10:13:15)

 
 Top
Kubert
Отправлено: 26 Августа, 2011 - 12:44:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




Сделал. Хотел узнать можно ли как нибуть оптимизировать данный процесс.
Файл будет запускаться каждые 6 часов через Cron.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $resortR = mysql_query("SELECT * FROM countryresort WHERE gismeteo!='' ");
  3. $resort = mysql_fetch_array($resortR);
  4. do{
  5.         $res[$resort['id']]['id'] = $resort['id'];
  6.         $res[$resort['id']]['gismeteo'] = $resort['gismeteo'];
  7. }while($resort = mysql_fetch_array($resortR));
  8.  
  9. foreach($res as $key => $value){
  10.                 $xmlurl = 'http://informer.gismeteo.ru/xml/'.$value['gismeteo'].'_1.xml';
  11.                 $xml = simplexml_load_file(rawurlencode($xmlurl));
  12.  
  13.                 $town_index = $xml->REPORT->TOWN->attributes()->index;
  14.                 $town_sname = $xml->REPORT->TOWN->attributes()->sname;
  15.                 $town_latitude = $xml->REPORT->TOWN->attributes()->latitude;
  16.                 $town_longitude = $xml->REPORT->TOWN->attributes()->longitude;
  17.  
  18.         for($i=0;$i<=3;$i++){
  19.                 $forecast_day = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->day;
  20.                 $forecast_month = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->month;
  21.                 $forecast_year = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->year;
  22.                 $forecast_hour = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->hour;
  23.                 $forecast_date = $forecast_year.'-'.$forecast_month.'-'.$forecast_day.' '.$forecast_hour.':00:00';
  24.                 $forecast_tod = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->tod;
  25.                 $forecast_predict = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->predict;
  26.                 $forecast_weekday = $xml->REPORT->TOWN->FORECAST[$i]->attributes()->weekday;
  27.  
  28.                 $phenomena_cloudiness = $xml->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->cloudiness;
  29.                 $phenomena_precipitation = $xml->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->precipitation;
  30.                 $phenomena_rpower = $xml->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->rpower;
  31.                 $phenomena_spower = $xml->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->spower;
  32.  
  33.                 $pressure_min = $xml->REPORT->TOWN->FORECAST[$i]->PRESSURE->attributes()->min;
  34.                 $pressure_max = $xml->REPORT->TOWN->FORECAST[$i]->PRESSURE->attributes()->max;
  35.  
  36.                 $temperature_min = $xml->REPORT->TOWN->FORECAST[$i]->TEMPERATURE->attributes()->min;
  37.                 $temperature_max = $xml->REPORT->TOWN->FORECAST[$i]->TEMPERATURE->attributes()->max;
  38.  
  39.                 $wind_min = $xml->REPORT->TOWN->FORECAST[$i]->WIND->attributes()->min;
  40.                 $wind_max = $xml->REPORT->TOWN->FORECAST[$i]->WIND->attributes()->max;
  41.                 $wind_direction = $xml->REPORT->TOWN->FORECAST[$i]->WIND->attributes()->direction;
  42.  
  43.                 $relwet_min = $xml->REPORT->TOWN->FORECAST[$i]->RELWET->attributes()->min;
  44.                 $relwet_max = $xml->REPORT->TOWN->FORECAST[$i]->RELWET->attributes()->max;
  45.  
  46.                 $heat_min = $xml->REPORT->TOWN->FORECAST[$i]->HEAT->attributes()->min;
  47.                 $heat_max = $xml->REPORT->TOWN->FORECAST[$i]->HEAT->attributes()->max;
  48.                
  49.                 mysql_query ("INSERT INTO gismeteo SET
  50.                         idresort='{$value['id']}',
  51.                         town_index='$town_index',
  52.                         town_sname='$town_sname',
  53.                         town_latitude='$town_latitude',
  54.                         town_longitude='$town_longitude',
  55.                         forecast_date='$forecast_date',
  56.                         forecast_tod='$forecast_tod',
  57.                         forecast_predict='$forecast_predict',
  58.                         forecast_weekday='$forecast_weekday',
  59.                         phenomena_cloudiness='$phenomena_cloudiness',
  60.                         phenomena_precipitation='$phenomena_precipitation',
  61.                         phenomena_rpower='$phenomena_rpower',
  62.                         phenomena_spower='$phenomena_spower',
  63.                         pressure_min='$pressure_min',
  64.                         pressure_max='$pressure_max',
  65.                         temperature_min='$temperature_min',
  66.                         temperature_max='$temperature_max',
  67.                         wind_min='$wind_min',
  68.                         wind_max='$wind_max',
  69.                         wind_direction='$wind_direction',
  70.                         relwet_min='$relwet_min',
  71.                         relwet_max='$relwet_max',
  72.                         heat_min='$heat_min',
  73.                         heat_max='$heat_max'
  74.                 ");
  75.         }
  76. }
  77.  

(Отредактировано автором: 26 Августа, 2011 - 12:45:21)

 
 Top
LIME
Отправлено: 26 Августа, 2011 - 12:53:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Kubert пишет:
Файл будет запускаться каждые 6 часов через Cron.
а не пофиг? ))
раз в 6 часов...да пусть он будет меганеоптимальным ))
(Добавление)
Kubert пишет:
$resort = mysql_fetch_array($resortR);
do{
$res[$resort['id']]['id'] = $resort['id'];
$res[$resort['id']]['gismeteo'] = $resort['gismeteo'];
}while($resort = mysql_fetch_array($resortR));
вот только это плохо
это уже привычка может сформироваться
PHP:
скопировать код в буфер обмена
  1. while($resort = mysql_fetch_array($resortR)) {
  2.            $res[$resort['id']]['id'] = $resort['id'];
  3.            $res[$resort['id']]['gismeteo'] = $resort['gismeteo'];
  4. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB