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 c конца

 PHP.SU

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


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

> Без описания
I_CaR
Отправлено: 01 Ноября, 2015 - 15:57:15
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


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




Всем доброго времени.
парсю xml файл:

прерываюсь:
PHP:
скопировать код в буфер обмена
  1. $count=10;
  2. foreach ( $xml->channel->item as $key => $item)  
  3. {
  4.   ... код ...
  5.         $i++;
  6.         if($i == $count) break;
  7. }

Но вот получается, что в файле записей около 50 и получается я получаю лишь самые первые, т.е. "старые" 10.
А как реализовать чтение его (xml-файла) с конца?

(Отредактировано автором: 01 Ноября, 2015 - 16:25:20)

 
 Top
Faraon-san
Отправлено: 01 Ноября, 2015 - 21:23:52
Post Id



Посетитель


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


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




 
 Top
I_CaR
Отправлено: 03 Ноября, 2015 - 11:26:49
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


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





Спасибо, что потрудились вставить ссылку.
И как вы это себе представляете?
Ответ плох тогда, когда он порождает кучу вопросов!
Я вывожу, например 7 последних записей из 200-300.
Примерно так:
пример кода (там нижний вариант)
Но как эти выводимые в таблицу записи перевернуть? У меня каждая итерация делает строку таблицы.
Для себя, пока, вижу выход только в сборке массива. И его последующий реверс и вывод.
А других путей нет в данной ситуации?

(Отредактировано автором: 03 Ноября, 2015 - 11:27:49)

 
 Top
Мелкий Супермодератор
Отправлено: 03 Ноября, 2015 - 11:53:46
Post Id



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


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


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




$xml->xpath('item[position() >= last() - 10]')
под конкретный xml подправьте только.


-----
PostgreSQL DBA
 
 Top
Faraon-san
Отправлено: 04 Ноября, 2015 - 15:30:04
Post Id



Посетитель


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


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




я предлагал вот таким способом, правда что менее затратно по ресурсам, хз, думаю вариант мелкого лучше.
PHP:
скопировать код в буфер обмена
  1. $xml = simplexml_load_file( 'http://www.vesti.ru/vesti.rss' );
  2. $xml = json_encode( $xml );
  3. $xml = json_decode( $xml , true );
  4. $xml['channel']['item'] = array_reverse($xml['channel']['item']);
  5.  
  6. var_dump($xml['channel']['item']);
 
 Top
armancho7777777 Супермодератор
Отправлено: 04 Ноября, 2015 - 15:47:27
Post Id



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


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


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




Faraon-san пишет:
правда что менее затратно по ресурсам

Более
 
 Top
I_CaR
Отправлено: 05 Ноября, 2015 - 13:30:28
Post Id



Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011  
Откуда: Красноярск


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




Faraon-san пишет:
...array-reverse...

Эм... практически извиняюсь пред вами за резкий ответ (такой уж я человек).
Но покрутившись вокруг xpath, сделал всё-таки через реверс, как сам я и думал раньше.
Сразу как-то решение не дошло (мозг тоже имеет свойство перегреваться у меня).

1. Весь вывод таблицы собрал в массив.
2. Потом его перевернул реверсом
3. И потом вывел через for
Всё работает.
Кстати, посмотреть "произведение" можно тут.

И человеческое спасибо всем, за то что подталкиваете чьи-то мозги к реализации чего-то.
(отдельное Спасибо Faraon-san'у)

(Отредактировано автором: 05 Ноября, 2015 - 14:54:48)

 
 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