PHP разработка

Создание выгрузки Битрикс XML через XmlWriter

Введение

Выгрузка будет реализована на основе Bitrix API класс XmlWriter.

Описание класса

  1. В функции getData() получаете необходимые вам данные, которые нужны в конечном XML (пример: Элементы инфоблока)

  2. Формируете данные в нужном вам формате с учетом вложенности массива

  3. В цикле (функция index) происходит добавление данные в конечный файл с учетом вложенности массива

  4. Получаете готовый 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();

Новые возможности

Здесь будут появляться уведомления о новых функциях и важных обновлениях.