• Руслан
  • 01 Фев 2009
  • Рубрика: PHP

Простой парсер при помощи SimpleXML

Новички в программировании на 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

Ваш отзыв

Имя (*)

E-mail (*)

Сайт

Сообщение

Архивы

Реклама

  • Каталог Дизайн интерьера Интерьер, дизайн, отделка под ключ Фен шуй спальни, фен шуй дома.