Введение
Выгрузка будет реализована на основе Bitrix API класс XmlWriter.
Описание класса
В функции getData() получаете необходимые вам данные, которые нужны в конечном XML (пример: Элементы инфоблока)
Формируете данные в нужном вам формате с учетом вложенности массива
В цикле (функция index) происходит добавление данные в конечный файл с учетом вложенности массива
Получаете готовый xml файл по *пути, указанному в параметре конструктора с ключом file
Путь к файлу указывается относительно корня сайта
Исходных код
<?php
/**
* Генерация XML файла
* @author https://t.me/bitrix_web<br> * @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();