XmlWriter
Описание и методы
XmlWriter - класс для экспорта в XML
| Метод | Описание | С версии |
|---|---|---|
| construct | Метод - конструктор | |
| writeItem | Метод записывает один блок в xml файл. | |
| writeFullTag | Метод записывает полный тег в файл. | |
| writeEndTag | Метод записывает конец тега в файл. | |
| writeBeginTag | Метод начинает запись тега в файл. | |
| openFile | Метод открывает файл для записи и начинает XML запись. | |
| getErrors | Метод возвращает ошибку. | |
| closeFile | Метод закрывает открытый файл. |
Примеры
$export = new \Bitrix\Main\XmlWriter(array(
'file' => '<относительный путь, куда пишем>',
'create_file' => true,
'charset' => SITE_CHARSET,
'lowercase' => true //приводить ли все теги к нижнему регистру (для педантов)
));
//открываем файл
$export->openFile();
//обрамляем массив тегом
$export->writeBeginTag('items');
//получаем в выборке элемент - заметьте, вложенность поддерживается
$test = array(
'name' => 'Tra & tata',
'Timе' => time(),
'array' => array(
'one' => 1,
'two' => 2,
'subarray' => array(
't1' => 1,
't2' => 2
)
)
);
//пишем тег (элемент выше)
$export->writeItem($test, 'item');
//вторым параметром мы передаем обрамляющий тег для этого массива, это то же самое, что и
$export->writeItem(array('item' => $test));
//словили ли ошибки
//$export->getErrors()
//закрываем массив тегом
$export->writeEndTag('items');
//закрываем файл
$export->closeFile();
Удобство класса в возможности пошаговой записи в файл. Например, у вас идет экспорт и вы пишите большой массив данных из базы в файл. Вот переписанный пример выше для реализации пошагового алгоритма (отличия помечены (***)).
$export = new \Bitrix\Main\XmlWriter(array(
'file' => '<относительный путь, куда пишем>',
'create_file' => $step == 0,//создаем файл только на первом шаге (***)
'charset' => SITE_CHARSET,
'lowercase' => true //приводить ли все теги к нижнему регистру
));
//открываем файл
$export->openFile();
//обрамляем массив тегом (***)
if ($step == 0)
{
$export->writeBeginTag('items');
}
//пишем тег (элемент выше) (***) - вот сюда мы возвращаем раз за разом на каждом хите мастера
$export->writeItem($test, 'item');
//закрываем массив тегом (***)
if ($step == 0)
{
$export->writeEndTag('items');
}
//закрываем файл
$export->closeFile();
© «Битрикс», 2001-2025, «1С-Битрикс», 2025