Новички в программировании на PHP часто спрашивают в сети простой способ извлечь нужные данные из xml-документа. Но в ответ им почему-то часто советуют изучать DOM, SAX, предлагают разные запутанные способы разбора XML, основанные на событийной модели. Некоторые даже советуют устанавливать сторонние расширения!!!
Но ведь на самом деле в PHP все не так плохо! В самом php есть готовые и очень простые в использовании классы для работы с xml – это SimpleXML.
Основные плюсы – это простота и доступность. Его не нужно специально устанавливать и поэтому можно быть на 99% уверенным что на хостинге использованные классы также будут доступны.
Возьмем самый распространенный пример – rss-канал какого-нибудь блога. Чтобы не ходить далеко за примером можно взять даже этот блог. По адресу http://phpcoder.ws/feed доступен xml-документ, содержащий список последних постов на блоге с заголовками, описанием, постоянными ссылками на статьи и пр. Вот его я и буду парсить.
Предположим, что нам нужно составить список заголовков статей и их адресов. Это и сделает нижеприведенный скрипт.
<ul> <?php $xml = new SimpleXMLElement('http://phpcoder.ws/feed', NULL, TRUE); foreach ($xml->channel->item as $item) { printf('<li><a href="%s">%s</a></li>', $item->link, $item->title); } ?> </ul>
Вот и все. И не говорите что парсить xml сложно
Если вам понравился этот сайт, вы можете подписаться на rss
Отзывы: 6 комментариев
Harn
25 Май 2009 в 19:51
Спасиб, очень пригодилось ^_^
максим
21 Сен 2009 в 17:52
он выводит только заголовок, а что нужно прописать что бы выводил фото с заголовками
Серей
19 Дек 2009 в 13:47
Хороший парсер, а как ограничить вывод новостей, то есть задать не все к примеру 15, а 5 или 8 ?
Руслан
28 Дек 2009 в 0:52
Максим, что вы имеете ввиду под фото?
Сергей, вместо цикла foreach() в примере используйте цикл for с количеством итераций равным количеству нужных вам новостей…
Серей
28 Дек 2009 в 3:48
А куда этот цикл с интерациями вставлять. Можно на примере.
Т.е. этот же скрипт только с циклом for.
максим
28 Дек 2009 в 6:22
я говорю о том что он не выводит картинки с записи с сайта откуда парсю записи, что нужно добавить в код что бы ограничить первое количество символов в выводимой записи, ограничивало бы вывод видео, только фото и мало того фото одно только и размером не более 100х100
Ваш отзыв