Парсинг xml c помощью php и SimpleXml
#php, #xml
В слове парсинг много загадочного, однако, это просто разбор xml документа в структуры данных понятные определенному языку программирования. В нашем случае этот язык - php. А использовать мы будем просой и понятный модуль SimpleXML, который по умолчанию уже встроен в современную версию языка - 7.4.

Документы xml позволяют описывать довольно сложные и разнообразные структуры данных, что делает их универсальным способом передачи практически любой информации. А потому они повсеместно используются в веб-разработке, отдаются раличными soap-сервисами и rest api, а также с использованием xml строится карта сайта или sitemap.xml. Рано или поздно вы столкнетесь с необходомостью разобрать такой документ, чтобы получить оттуда необходимую информацию.
Давайте познакомимся с парсингом xml, реализовав конкретную задачу получения данных курсов валют с сайта центрального банка. Файл с данными можно обнаружить по ссылке.
Получить готовый объект c разобранным xml не сложно, достаточно вызвать функцию simplexml_load_file и передать туда ссылку. Найти нужные данные в этом объекте тоже легко, ещё бы, ведь мы имеем дело с SimpleXML. В этом модуле всё реализовано максимально удобно. Вот как может выглядеть наш код:
1 2 3 4 5 6 7 |
<?php $s = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp'); foreach ($s->Valute as $item) { echo "<b>{$item->CharCode}:</b> {$item->Value} RUB<hr>"; }; |
В строке 3 мы получаем нужный объект, а затем в цикле итерируем все элементы Valute. Внутри этих элементов находятся все интересующие нас данные, а это код валюты и её стоимость в рублях. Для выразительности выделим код жирным, а также разделим данные горизонтальной чертой. Должно получится примерно следующее:
Вот так, написав всего лишь 7 строчек, можно справится с этой задачей. Скажем спасибо php и модулю SimpleXML.