PHP

Использование CURL и SimpleXML для парсинга внешнего xml-файла.

Рассмотрим использование CURL и SimpleXML для парсинга внешнего xml-файла и вывода его отдельных элементов. В качестве внешнего xml-файла возьмем rss-ленту новостей Яндекса http://news.yandex.ru/index.rss.

Первая задача – получить внешний файл (используем функцию CURL в PHP).
$url = "http://news.yandex.ru/index.rss";
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);

Считываемый файл теперь находится у нас в строке $output. Преобразуем полученную строку данных в объект SimpleXML – это позволит легко получать доступ к данным через свойства объекта.
$items = simplexml_load_string($output);

Наш объект имеет вложенную структуру, но нас интересуют только элементы «item», которые расположены внутри элемента channel. Возьмем то, что нам нужно, отбросив лишнее:
$items = $items->channel;

Теперь с помощью конструкции foreach мы можем пройтись по каждому элементу (отдельной новости) и вывести его:
foreach ($items->item as $item) {
    echo "<a href='$item->link'>".$item->title."</a><br>";
    echo $item->description."<br>";
}

Больще параметров для curl_setopt в документации.

Объект SimpleXML можно получить непосредственно на основе загружаемого файла xml с помощью функции simplexml_load_file.
Теги:
CURL, SimpleXML, парсинг
Добавлено: 19 Мая 2018 21:30:53 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...