Содержание
скрыть
Введение
Выгрузка будет реализована на основе Bitrix API класс XmlWriter.
Описание класса
- В функции getData() получаете необходимые вам данные, которые нужны в конечном XML (пример: Элементы инфоблока)
- Формируете данные в нужном вам формате с учетом вложенности массива
- В цикле (функция index) происходит добавление данные в конечный файл с учетом вложенности массива
- Получаете готовый xml файл по *пути, указанному в параметре конструктора с ключом file
*Путь к файлу указывается относительно корня сайта
Исходных код
<?php /** * Генерация XML файла * @author https://t.me/bitrix_web
* @author https://code-culture.ru/ */ require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php"); class GenerateXml{ private $xml, $data; public function index(){ self::getData(); $this->xml = new \Bitrix\Main\XmlWriter(['create_file' => true, 'charset' => 'UTF-8', 'file' => '/xml-data.xml']); $this->xml->openFile(); $this->xml->writeBeginTag('shop'); $this->xml->writeBeginTag('items'); foreach ($this->data as $item) { $this->xml->writeItem($item, 'item'); } $this->xml->writeBeginTag('items'); $this->xml->writeEndTag('shop'); $this->xml->closeFile(); } private function getData(){ $this->data = [ 0 => [ 'id' => 512, 'name' => 'Футболка', 'price' => 145, 'code' => 'tshirt' ], 1 => [ 'id' => 513, 'name' => 'Футболка Синяя', 'price' => 135, 'code' => 'red-tshirt1' ], 2 => [ 'id' => 514, 'name' => 'Футболка Красная', 'price' => 125, 'code' => 'red-tshirt2' ] ]; } } $xml = new GenerateXml(); $xml->index();