Для вступления в общество новичков и профессионалов домен-индустрии, пожалуйста нажмите здесь ...

   
 Купля-продажа и обсуждение доменных имён
        

  
Вернуться   Форум о доменах > Дизайн и развитие проектов > Программирование
Регистрация Реноме Правила форума Справка Сообщество
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования.

Ответ
 
Опции темы
Сегодня
от 149р за .RU
Аренда сервера
2x Intel Hexa-Core Xeon E5-2420
Всего 79 евро!

с видеокартой GeForce GTX 1080 Ti
всего 99 евро!

от 149р за .РФ Реклама на DomenForum.net
Старый 12.07.2015, 00:43   #1
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,498
Доменные сделки: 24
Реноме: 1556
Одобрения
Спасибо (Отдано): 533
Спасибо (Получено): 751
Отправить сообщение для Port_Artur с помощью ICQ
Подсчитать количество объектов после парсинга XML

Делаю парсинг XML

PHP код:
...
$xmlres simplexml_load_string($xml); 
Нужно обратиться к первому и последнему элементам. К первому через [0]. Чтобы обратиться к последнему нужно узнать количество элементов в объекте.

как подсчитать количество объектов в $xmlres ?

Пробовал через count

PHP код:
echo count($xmlres); 
, но похоже нужно считать не так, т.к. вместо 24 (в моём случае), получается 35.

Помогите пожалуйста.
Port_Artur вне форума   Ответить с цитированием
Старый 12.07.2015, 18:21   #2
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,498
Доменные сделки: 24
Реноме: 1556
Одобрения
Спасибо (Отдано): 533
Спасибо (Получено): 751
Отправить сообщение для Port_Artur с помощью ICQ
так тоже неправильный ответ вместо 24 показывает 35

В чём прикол?

 
$xmlres->count();
Port_Artur вне форума   Ответить с цитированием
Старый 12.07.2015, 19:13   #3
 
Регистрация: 26.04.2012
Сообщений: 4,066
Доменные сделки: 47
Реноме: 2365
Одобрения
Спасибо (Отдано): 1370
Спасибо (Получено): 1551
Отправить сообщение для ekubachev с помощью ICQ Отправить сообщение для ekubachev с помощью Skype™
Значит в массиве действительно 35 элементов. Смотрите дамп парсинга.
ekubachev вне форума   Ответить с цитированием
Старый 12.07.2015, 20:17   #4
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,498
Доменные сделки: 24
Реноме: 1556
Одобрения
Спасибо (Отдано): 533
Спасибо (Получено): 751
Отправить сообщение для Port_Artur с помощью ICQ
При выводе всех элементов объекта через

 
foreach ($xmlres->
выводит 24, значит их там действительно 24,
а вот подсчитать не получается.

добавлено через 19 минут
Считал в самом XML - там тоже 24

добавлено через 37 минут
И даже так пишет 35;

 
$count = count($node->children());
Бред какой-то

Последний раз редактировалось Port_Artur; 12.07.2015 в 20:54. Причина: Добавлено сообщение
Port_Artur вне форума   Ответить с цитированием
Старый 12.07.2015, 21:18   #5
 
Регистрация: 26.04.2012
Сообщений: 4,066
Доменные сделки: 47
Реноме: 2365
Одобрения
Спасибо (Отдано): 1370
Спасибо (Получено): 1551
Отправить сообщение для ekubachev с помощью ICQ Отправить сообщение для ekubachev с помощью Skype™
Покажите вывод var_dump($xmlres)
ekubachev вне форума   Ответить с цитированием
Старый 12.07.2015, 22:01   #6
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,498
Доменные сделки: 24
Реноме: 1556
Одобрения
Спасибо (Отдано): 533
Спасибо (Получено): 751
Отправить сообщение для Port_Artur с помощью ICQ
Вот часть (начало):
 
object(SimpleXMLElement)#252 (12) {
[“u”]=>
string(6) “CAtis”
[“d”]=>
string(8) “du”
[“sps”]=>
array(24) {
[0]=>
object(SimpleXMLElement)
Как видите array(24) показывает, что элементов дейстительно 24, но почему считает больше?
Port_Artur вне форума   Ответить с цитированием
Старый 12.07.2015, 22:50   #7
 
Регистрация: 26.04.2012
Сообщений: 4,066
Доменные сделки: 47
Реноме: 2365
Одобрения
Спасибо (Отдано): 1370
Спасибо (Получено): 1551
Отправить сообщение для ekubachev с помощью ICQ Отправить сообщение для ekubachev с помощью Skype™
Если вы привели дамп команды, что написал я, то вы пытаетесь сделать выборку не того массива. Считайте count($xmlres['sps']) - именно он содержит 24 элемента, а не $xmlres, число элементов котрого (с подмассивом sps) действительно 24+12-1=35

Последний раз редактировалось ekubachev; 12.07.2015 в 22:53.
ekubachev вне форума   Ответить с цитированием
Старый 12.07.2015, 23:13   #8
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,498
Доменные сделки: 24
Реноме: 1556
Одобрения
Спасибо (Отдано): 533
Спасибо (Получено): 751
Отправить сообщение для Port_Artur с помощью ICQ
результат 0, - что-то не так

Это последний 24-й элемент с нуля
 
...
[23]=>
object(SimpleXMLElement)#2641 (7) {
...
добавлено через 11 минут
Нашёл решение:

 
$count = $xmlres->sps->count();
Спасибо за помощь, ekubachev.

Последний раз редактировалось Port_Artur; 12.07.2015 в 23:24. Причина: Добавлено сообщение
Port_Artur вне форума   Ответить с цитированием
Ответ



Реклама

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:19. Часовой пояс GMT +4.