При работе с bitrix может возникнуть необходимость конвертации массива в xml файл. Из найденных вариантов был выбран лучший инструмент для конвертации php массива в xml файл и xml в php массив: функции array2xml и xml2array.

Для выполнения конвертации из массива в xml файл необходимо:

  1. Поместить файл функции array2xml.php в раздел, в котором она будет использоваться.

  2. Подключить файл с функцией

    require_once ('array2xml.php');
  3. Разберем пример по формированию XML на основе заведенных в системе товаров. Для этого будем использовать функцию CIBlockElement::GetList для получения данных из инфоблока.

    $array2xml = new Array2xml();

    $arSelect = Array("ID", "NAME");
    $arFilter = Array("IBLOCK_ID"=> 4, "SECTION_ID" => 2120, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
    $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
    while($ob = $res->GetNextElement())
    {
    $arFields = $ob->GetFields();
    $arResult[SHOPITEM][ITEM_ID] = $arFields[ID];
    $arResult[SHOPITEM][PRODUCTNAME] = $arFields[NAME];

    echo $array2xml->convert($arResult);
    }
  4. На выходе получаем сформированный xml наших товаров.



Для выполнения конвертации из xml файла в массив необходимо:

  1. Поместить файл функции xml2array.php в раздел, в котором она будет использоваться.

  2. Подключить файл с функцией

    require_once ('array2xml.php');
  3. Загрузить xml файл, который необходимо конвертировать, и указать путь к файлу в файловой системе. Файл xml должен содержать начальный и конечный теги, в которые будет заключен весь документ.

    $xml = file_get_contents('test/XML_SHOPITEM2.xml');
    $data = xml2array($xml);
    print_r($data);
  4. В итоге получаем массив элементов, сформированный из xml файла.

Таким образом, мы можем создать xml файл на основе php массива и создать php массив на основе xml.