Skip to content

Instantly share code, notes, and snippets.

@nizom333
Last active June 28, 2021 12:18
Show Gist options
  • Save nizom333/0b62935d2b596f33c0dcf2a9d8e485ca to your computer and use it in GitHub Desktop.
Save nizom333/0b62935d2b596f33c0dcf2a9d8e485ca to your computer and use it in GitHub Desktop.
Создание XML в PHP / Bitrix
<?php
/**
* Created by Najmiddinov Nizamiddin
* Developer Full Name: Najmiddinov Nizamiddin
* Developer Mail: [email protected]
* Github: https://github.com/nizom333
* Telegram: @nizomiddin_n
* Resume page: https://dev.1c-bitrix.ru/learning/resume.php?ID=36871542-1260669
*/
require_once($_SERVER['DOCUMENT_ROOT'] ."/bitrix/modules/main/include/prolog_before.php");
/*
На чистом php
$data = [
'bla' => 'blub',
'foo' => 'bar',
'another_array' => array(
'stack' => 'overflow',
),
];
$xml = new SimpleXMLElement('<YeastarIPPhoneDirectory/>');
array_walk_recursive($data, [$xml, 'addChild']);
file_put_contents(__DIR__ . '/users.xml', $xml->asXML());
*/
$export = new \Bitrix\Main\XmlWriter(
[
'file' => '/upload/adverts.xml', // относительный путь к создаваемому файлу, файл отсутствует и установлен параметр 'create_file', то он будет автоматически создан
'create_file' => true, //создавать ли файл, или продолжить запись в уже созданный. В данном случае каждый раз будет создаваться и перезаписываться новый файл
'charset' => 'UTF-8', //кодировка файла
'lowercase' => false //приводить ли все теги к нижнему регистру
]
);
$export->openFile();
$export->writeBeginTag('root');
$users = \Bitrix\Main\UserTable::getList(
[
'filter' => [
'ACTIVE' => 'Y',
'!UF_PHONE_INNER' => false
],
'select' => [
'LAST_NAME',
'NAME',
'UF_PHONE_INNER',
],
]
)->fetchAll();
foreach ($users as $user)
{
$export->writeItem(
[
'Name' => implode(
' ', [
$user['LAST_NAME'], $user['NAME']
]
),
'Telephone' => $user['UF_PHONE_INNER'],
], 'DirectoryEntry'
);
}
$export->writeEndTag('root');
$export->closeFile();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment