<? phpukraine ІНСТРУМЕНТИ
Пошук по платформі

Конвертер XML ↔ JSON

XML у JSON з атрибутами як @attr і назад. Для RSS, SOAP-відповідей і старих інтеграцій.

У БРАУЗЕРІ ТЕКСТ → ТЕКСТ
РОБОЧА ЗОНА
ЩО РОБИТЬ

Перекладає між двома форматами, які не мають прямого відповідника

RSS-стрічка, відповідь SOAP, вивантаження зі старої системи: усе це XML, а обробляти зручніше як JSON. Конвертер перекладає структуру, зберігаючи атрибути з префіксом @, і збирає XML із JSON, коли треба сформувати запит до такої системи.

ЯК ЦЕ ПРАЦЮЄ В PHP

Найкоротший шлях від XML до масиву в PHP це simplexml_load_string і json_encode: SimpleXML сам знає, як віддати себе в JSON. Атрибути при цьому опиняються під ключем @attributes, а порожні елементи стають порожніми масивами, тому для складних документів краще DOMDocument і явний обхід.

$xml = simplexml_load_string($body, 'SimpleXMLElement', LIBXML_NOCDATA);

$data = json_decode(json_encode($xml), true);
// ['channel' => ['item' => [['title' => '…', '@attributes' => ['id' => '427']], …]]]

// назад:
$doc = new SimpleXMLElement('<jobs/>');
$job = $doc->addChild('job');
$job->addAttribute('id', '427');
$job->addChild('title', 'Senior PHP Developer');
echo $doc->asXML();
ПИТАННЯ

Що питають про цей інструмент

У JSON немає атрибутів, тому вони стають ключами з префіксом @: <job id="427"> перетворюється на {"job": {"@id": "427"}}. Текст елемента, який має атрибути, кладеться в ключ #text. Це поширена конвенція, її ж використовує fast-xml-parser і більшість конвертерів.

ДАЛІ ПО ТЕМІ