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

Печать RSS
156

Автор
Граф Озриор
0
Новички в программировании на PHP часто спрашивают в сети простой способ извлечь нужные данные из xml-документа. Но в ответ им почему-то часто советуют изучать DOM, SAX, предлагают разные запутанные способы разбора XML, основанные на событийной модели. Некоторые даже советуют устанавливать сторонние расширения!!!

Но ведь на самом деле в PHP все не так плохо! В самом php есть готовые и очень простые в использовании классы для работы с xml – это SimpleXML.


Основные плюсы – это простота и доступность. Его не нужно специально устанавливать и поэтому можно быть на 99% уверенным что на хостинге использованные классы также будут доступны.

Возьмем самый распространенный пример – rss-канал какого-нибудь блога. Чтобы не ходить далеко за примером можно взять даже этот блог. По адресу http://phpcoder.ws/feed доступен xml-документ, содержащий список последних постов на блоге с заголовками, описанием, постоянными ссылками на статьи и пр. Вот его я и буду парсить.

Предположим, что нам нужно составить список заголовков статей и их адресов. Это и сделает нижеприведенный скрипт. smile
Автор
Граф Озриор
0
<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>
Автор
Граф Озриор
0
Вот и все. И не говорите что парсить xml сложно smile
C

Малиновые штаны
0
делаешь вид что здравый кодер а используешь printf(); D
N

Голубые штаны
0
Автор,если копипастишь слово в слово, указывай источник.
A

Оранжевые штаны
0
Ну легко, так легко, объясни тогда что ты здесь использовал и зачем, покажи еще несколько примеров как ты парсишь xml, давно уже голову ломаю над валидатором, кое что не совсем получается, может из твоих примеров что полезное увижу, а так эта тема пока показалась мне бесполезной, новички все равно ничего не поймут
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск