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 :: XPath-запрос к XML-данным (получение курса валют)

 PHP.SU

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


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

> Без описания
imediasun
Отправлено: 18 Июля, 2014 - 12:58:04
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Не выполняется XPath-запрос к XML-данным, подскажите почему пожалуйста
PHP:
скопировать код в буфер обмена
  1.  
  2. class ExchangeRate {
  3.  
  4.     // URL, файл в формате XML
  5.     public $exchange_url =
  6.             'http://bank-ua.com/export/currrate.xml';
  7.     public $xml;
  8.  
  9.     function __construct(){
  10.         // интерпретируем XML-файл в объект
  11.         return $this->xml =
  12.                 simplexml_load_file($this->exchange_url);
  13.     }
  14.  
  15.     function getExchangeRateByChar3($char3){
  16.  
  17.      if ($this->xml!==FALSE) {
  18.       // все хорошо, можно работать дальше -
  19.       // в XML-данных нет ошибки
  20.  
  21.       foreach($this->xml->children() as $item){
  22.            $row = simplexml_load_string($item->asXML());
  23.             print_r($row);
  24. //этот print_r выдает все данные по всем валютом в таком формате
  25. /*SimpleXMLElement Object
  26. (
  27.     [ date ] => 2011-07-22
  28.     [ code ] => 840
  29.     [ char3 ] => USD
  30.     [ size ] => 100
  31.     [ name ] => доларів США
  32.     [ rate ] => 797.1100
  33.     [ change ] => 0
  34. )*/
  35.            // Выполняем XPath-запрос к XML-данным
  36.            $v = $row->xpath('//char3[. ="' . $char3 . '"]');
  37.  print_r($v);
  38. //в этом print_r уже пусто
  39.            if($v[0]){
  40.               $result = $item;
  41.               break;
  42.            }
  43.       }
  44.      }
  45.      return $result;
  46.     }
  47. }
  48.  

Обращение к класу
PHP:
скопировать код в буфер обмена
  1.  
  2. $er = new ExchangeRate();
  3.  
  4. // "Вытаскиваем" курс для долларов США по сокращенному
  5. // 3-х буквенному названии латиницей
  6. $data = $er->getExchangeRateByChar3('USD');
  7.  
  8. // для начала посмотрим переменную $data
  9. print "<pre>";
  10. print_r($data);
  11. print "</pre>";
  12.  

(Отредактировано автором: 18 Июля, 2014 - 12:59:31)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB