18 окт 2020

Парсинг xml c помощью php и SimpleXml

#php, #xml

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

Парсинг xml c помощью php и SimpleXml

Документы 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. Внутри этих элементов находятся все интересующие нас данные, а это код валюты и её стоимость в рублях. Для выразительности выделим код жирным, а также разделим данные горизонтальной чертой. Должно получится примерно следующее: parsing-xml-c-pomoshchyu-php-i-simplexml.jpg

Вот так, написав всего лишь 7 строчек, можно справится с этой задачей. Скажем спасибо php и модулю SimpleXML.

Все статьи

© 2020-2021 Александр Пантелеев