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

 PHP.SU

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


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

> Без описания
grafillo
Отправлено: 29 Декабря, 2014 - 18:13:31
Post Id


Посетитель


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


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




Есть XML
CODE (htmlphp):
скопировать код в буфер обмена
  1. <xml>
  2. <bot login="ttt" >VaraBot</bot>
  3. <bot login="ccc">SharaBot</bot>
  4. </xml>

надо его распарсить и добавить в таблицу, кто может написать простой код доступа к login и к содержимому?
делаю через
PHP:
скопировать код в буфер обмена
  1. $xml = new SimpleXMLElement($req);
 
 Top
grafillo
Отправлено: 29 Декабря, 2014 - 21:12:18
Post Id


Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. $xml = '<xml>
  2. <bot login="ttt" time="11111">VaraBot</bot>
  3. <bot login="ccc" time="11111">SharaBot</bot>
  4. </xml>';
  5.  
  6. $mydata = new SimpleXmlIterator($xml);
  7.  
  8. for ($mydata->rewind();$mydata->valid();$mydata->next()) {
  9. echo($mydata->current()->attributes());
  10. }


нашёл как распарсить, но теперь если появляется второй атрибут time то к нему не могу получить доступ
и ваще непонятно что это за функции и чё они делают rewind() valid() next()
знающие подскажите
 
 Top
Мелкий Супермодератор
Отправлено: 29 Декабря, 2014 - 22:24:14
Post Id



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


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


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




Ну и нафига вы свой foreach делаете?

Это iterator/traversable, см. http://php.net/manual/en/class.iterator.php


-----
PostgreSQL DBA
 
 Top
skiphog
Отправлено: 30 Декабря, 2014 - 09:33:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




PHP:
скопировать код в буфер обмена
  1. $xml = simplexml_load_file($xml);
  2. // либо из строки $xml = new SimpleXMLElement($xml)
  3. // бегаем по узлам bot
  4. foreach($xml->bot as $bot) {
  5.   //бегаем по атрибутам узла bot
  6.   foreach($bot->attributes() as $key => $value) {
  7.     echo $key; // здесь атрибут
  8.     echo $value; // здесь значение атрибута
  9.   }
  10.   echo $bot; // сам текст в bot
  11. }

(Отредактировано автором: 30 Декабря, 2014 - 09:38:21)

 
My status
 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