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 :: получение массива с атрибутом Id

 PHP.SU

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


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

> Описание: получение массива с атрибутом Id
myshara
Отправлено: 20 Мая, 2015 - 11:05:01
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2013  


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




Доброго времени суток!

Есть задача.
Получить максимальный Id.

xml:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <structure>
  3. <group id="gp1"><propertis></propertis></group>
  4. <group id="gp2"><propertis></propertis></group>
  5. <group id="gp..."><propertis></propertis></group>
  6. </structure>


Как получить массив id на php
Делаю так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.     $txml = simplexml_load_file('xml/'.$fname);
  2.     $arrayId=array();
  3.     foreach ($txml->group as $group)
  4.     {
  5.         $arrayId[]=$group->attributes('id');
  6.     };


не получается...
 
 Top
Panoptik
Отправлено: 20 Мая, 2015 - 11:06:07
Post Id



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


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


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






-----
Just do it
 
 Top
myshara
Отправлено: 20 Мая, 2015 - 13:27:45
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2013  


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




Panoptik пишет:
http://phpfaq.ru/debug


А?!
Да это же ответ на все вопросы мироздания.

Что же вы такие дебилы наплодили столько форумов и тем.
Все же просто - см. в логи.

А вопрос актуальный 30 мин - 18 просмотров что дальше????

Как решить задачу?? Что не так в коде???
Где ответ???

Вот так всегда...
 
 Top
Мелкий Супермодератор
Отправлено: 20 Мая, 2015 - 13:46:27
Post Id



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


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


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




myshara пишет:
Что не так в коде???

Так прочтите же статью полностью и спросите у своего же кода, где что-то идёт не так.
То ли в $group, что вы ожидаете? Тот ли $txml?
Что вам возвращает attributes?

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


-----
PostgreSQL DBA
 
 Top
myshara
Отправлено: 20 Мая, 2015 - 13:52:55
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2013  


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




Всем спасибо за участие.

Разобрался сам.

решение:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $arrayId[]=$group['id'];


Цитата:
Горе от ума умников. (Илья Герчиков) ГОРЕ
 
 Top
Sail
Отправлено: 20 Мая, 2015 - 14:11:59
Post Id



Участник


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


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




myshara, а теперь - var_dump($arrayId); - и любуемся на массив с неожиданной структурой Радость
Вот так лучше, однако:
PHP:
скопировать код в буфер обмена
  1. //...
  2.     $arrayId=array();
  3.     foreach($txml as $node) {
  4. //    Как ниже напомнили: за ненадобностью...
  5. //        foreach($node->attributes() as $key => $value){
  6. //            if($key === 'id') {
  7. //                $arrayId[] = $value->__toString();
  8. //            }
  9. //        }
  10.         $arrayId[] = (string)$node['id'];
  11.     }
  12.     var_dump($arrayId);

Подробности: Класс SimpleXMLElement
PS: и, конечно-же, не стоит от (любого!) форума ожидать мгновенного (или просто быстрого) ответа на любой вопрос...
(Добавление)
... форум ведь - не техподдержка, за услуги которой вы платите абонентскую плату...

(Отредактировано автором: 20 Мая, 2015 - 14:27:27)

 
 Top
Мелкий Супермодератор
Отправлено: 20 Мая, 2015 - 14:17:39
Post Id



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


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


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




Sail, сейчас по рукам бить буду! Радость
PHP:
скопировать код в буфер обмена
  1.     $arrayId=array();
  2.     foreach($txml as $node) {
  3.         $arrayId[] = (string) $node['id'];
  4.     }


-----
PostgreSQL DBA
 
 Top
myshara
Отправлено: 22 Мая, 2015 - 11:05:39
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июнь 2013  


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




Спасибо всем.

Помогли.
 
 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