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 :: Вывод данных из SimpleXMLElement Object

 PHP.SU

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


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

> Без описания
gheka
Отправлено: 05 Марта, 2012 - 18:23:57
Post Id



Частый гость


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


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




Нужно вывести в браузер данные из SimpleXMLElement Object

SimpleXMLElement Object ( [reqn] => 133095806956492 [outinvoices] => SimpleXMLElement Object ( [@attributes] => Array ( [cnt] => 1 [cntA] => 0 ) [outinvoice] => SimpleXMLElement Object ( [@attributes] => Array ( [id] => 274528891 [ts] => 274531512 ) [orderid] => 1 [storepurse] => R153384160896 [customerwmid] => 395495745999 [amount] => 0.11 [datecrt] => 20120305 18:17:12 [dateupd] => 20120305 18:26:26 [state] => 3 [address] => SimpleXMLElement Object ( ) [desc] => SimpleXMLElement Object ( ) [period] => 0 [expiration] => 1 [wmtranid] => 0 [customerpurse] => SimpleXMLElement Object ( ) ) ) [retval] => 0 [retdesc] => SimpleXMLElement Object ( ) )

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.         $res = $wmxi->X4(
  4.                 PRIMARY_PURSE,  # номер кошелька  для оплаты на который выписывался счет
  5.                 274528891,              # номер счета (в системе WebMoney)
  6.                 1,              # номер счета
  7.                 DATE_A,         # минимальное время и дата создания счета
  8.                 DATE_B          # максимальное время и дата создания счета
  9.         );
  10.  
  11.         print_r($res->toObject());
  12.         $res = $res->toObject();
  13.        
  14.         echo $r = $res->reqn[0] . '<br>'; // вот это выводит
  15.         echo $r = $res->outinvoice->orderid[0]; пробую вывести другие данные не выводит
  16.  
  17.  
  18.  


Что я делаю не так подскажите пожалуйста.
 
 Top
Panoptik
Отправлено: 05 Марта, 2012 - 18:54:41
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




@attributes - что это?


-----
Just do it
 
 Top
gheka
Отправлено: 05 Марта, 2012 - 19:23:05
Post Id



Частый гость


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


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




Panoptik пишет:
@attributes - что это?


Честно сам не знаю эти данные получаю через Xml интерфейсы webmoney
 
 Top
Panoptik
Отправлено: 05 Марта, 2012 - 19:26:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




в идеале вы одлжны обратиться к orderid[0] как-то так:
PHP:
скопировать код в буфер обмена
  1. $res->outinvoice->@attributes->orderid[0];
но даже боюсь предположить что из этого получится
(Добавление)
было бы неплохо, если бы вы привели кусок xml


-----
Just do it
 
 Top
LIME
Отправлено: 05 Марта, 2012 - 19:36:19
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. $res->outinvoice->{'@attributes'}->orderid[0];

(Добавление)
был случай с элементом body-type
помогло решение
(Добавление)
кстати в тот же раз столкнулся с тем что форич для элемента SimpleXMLElement перебирает только $val...
$key не перебирает (as $key=>$val)
решил введением счетчика
кто знает как вернее было сделать?
 
 Top
gheka
Отправлено: 05 Марта, 2012 - 19:50:22
Post Id



Частый гость


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


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




Panoptik пишет:
в идеале вы одлжны обратиться к orderid[0] как-то так:
PHP:
скопировать код в буфер обмена
  1. $res->outinvoice->@attributes->orderid[0];
но даже боюсь предположить что из этого получится
(Добавление)
было бы неплохо, если бы вы привели кусок xml


Нет не работает

Вот функция которая выполняется и выводит то XML что в самом начале:

PHP:
скопировать код в буфер обмена
  1.  
  2.         # interface X4
  3.         # http://wiki.webmoney.ru/wiki/show/Interfeys_X4
  4.         public function X4($purse, $wminvid, $orderid, $datestart, $datefinish) {
  5.                 $reqn = $this->_reqn();
  6.                 $req = new SimpleXMLElement('<w3s.request/>');
  7.                 $req->reqn = $reqn;
  8.  
  9.                 if ($this->classic) {
  10.                         $req->wmid = $this->wmid;
  11.                         $req->sign = $this->_sign($purse.$reqn);
  12.                 }
  13.                 $group = 'getoutinvoices';
  14.                 $req->$group->purse = $purse;
  15.                 $req->$group->wminvid = $wminvid;
  16.                 $req->$group->orderid = $orderid;
  17.                 $req->$group->datestart = $datestart;
  18.                 $req->$group->datefinish = $datefinish;
  19.                 $url = $this->classic ? 'https://w3s.webmoney.ru/asp/XMLOutInvoices.asp' : 'https://w3s.webmoney.ru/asp/XMLOutInvoicesCert.asp';
  20.  
  21.                 return $this->_request($url, $req->asXML(), __FUNCTION__);
  22.         }
  23.  
 
 Top
Мелкий Супермодератор
Отправлено: 06 Марта, 2012 - 08:04:22
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //пример XML из вики
  3. $xmlstr = <<<H
  4. <?xml version="1.0" encoding="UTF-8"?>
  5. <recipe name="хлеб" preptime="5" cooktime="180">
  6.   <title>Простой хлеб</title>
  7.   <ingredient amount="3" unit="стакан">Мука</ingredient>
  8.   <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
  9.   <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
  10.   <ingredient amount="1" unit="чайная ложка">Соль</ingredient>
  11.   <instructions>
  12.    <step>Смешать все ингредиенты и тщательно замесить.</step>
  13.    <step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
  14.    <!-- <step>Почитать вчерашнюю газету.</step> - это сомнительный шаг... -->
  15.    <step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
  16.   </instructions>
  17. </recipe>
  18. H;
  19. $xml = simplexml_load_string($xmlstr);
  20.  
  21. echo $xml->attributes()->name;
  22.  


-----
PostgreSQL DBA
 
 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