Запись XML
Запись простого XML-документа
Для записи XML-документа предназначен тип ЗаписьXml
. В общем случае записывать XML-документ можно в экземпляр, производный от экземпляра типа ПотокЗаписи
. Чтобы указать настройки записи, необходимо создать экземпляр типа НастройкиЗаписиXml
и передать его в конструктор типа ЗаписьXml
в качестве параметра. Вы можете управлять следующими настройками:
ДобавлятьОтступы
— определяет, требуется ли добавлять отступы и переносы на новую строку при записи элементов XML-документа;РазрешитьПустыеЭлементы
— определ яет, нужно ли для элементов без содержимого использовать краткую форму, то есть<tag/>
вместо<tag></tag>
.
Рассмотрим пример записи документа в файл. В самом простом случае XML-документ содержит объявление документа и корневой тег. В нашем случае это тег <note>
. Объявление документа — это обязательный элемент любого XML-документа, для записи которого используются парные методы ЗаписатьНачалоДокумента()
/ЗаписатьКонецДокумента()
. Другим обязательным элементом XML-документа является корневой тег.
При работе с XML-документом важно помнить, что нужно записывать не только открывающий тег, но и закрывающий. В противном случае структура XML-документа нарушается. Именно поэтому многие методы работы с XML используются парами. Например, для записи какого-либо элемента используется два метода:
ЗаписатьНачалоЭлемента()
— записывает открывающий тег:<note>
.ЗаписатьКонецЭлемента()
— записывает закрывающий тег:</note>
.
Запись XML. Шаг 1
метод ЗаписатьXmlДокумент()
пер ВременныйКаталог = СредаИсполнения.ПолучитьПеременную("temp")
пер Файл = новый Файл(ВременныйКаталог + "\\note.xml")
пер Запись = новый ЗаписьXml(Файл.ОткрытьПотокЗаписи())
Запись.ЗаписатьНачалоДокумента()
Запись.ЗаписатьНачалоЭлемента("note")
Запись.ЗаписатьКонецЭлемента()
Запись.ЗаписатьКонецДокумента()
;
Запись элементов XML-документа
После того как мы сформировали простой XML-документ, наполним этот документ оставшимся содержимым. Так как XML-документ имеет иерархическую структуру, где иерархию образуют вложенные теги, записывать теги следует с учетом их вложенности. Для этого необходимо начинать подчиненный элемент после указания начала родительского элемента, но до окончания родительского элемента.
Каждый тег записывается парой методов ЗаписатьНачалоЭлемента()
/ЗаписатьКонецЭлемента()
. Данные методы содержат необязательный параметр ДобавлятьОтступы
, который позволяет добавить отступ и перенос на новую строку при записи элемента, чтобы сделать файл более удобным для восприятия. Если значение этого параметра Неопределено
, то используется значение настройки НастройкиЗаписиXml.ДобавлятьОтступы
.
В результате работы нашего примера получится документ, очень похожий на оригинальный, только в нем отсутствуют значения элементов:
<?xml version='1.0' encoding='UTF-8'?>
<note>
<to/>
<from/>
<heading/>
<body/>
</note>