XML DOM 1С — ПостроительDOM 1С, ЗаписьDOM 1С


DOM или XML DOM — объектная модель работы с XML, где XML представлен деревом, где каждая ветка (узел) это тоже объект со своими свойствами, методами и т.п.

ДокументDOM – объект XML DOM 1С, который позволяет работать с XML файлом в «объектной» оболочке. Поддерживается массив (список) узлов, подчиненные узлы, поиск и т.п.

ПостроительDOM 1C – позволяет считывать XML в объект ДокументDOM (XML DOM 1С).

ЗаписьDOM 1C – позволяет записать ДокументDOM в файл XML.

 

Пример 1 – создание документа XML DOM 1С и последующая запись в файл с помощью ЗаписьDOM 1С


//создаем объект XML DOM 1С документа
XML = Новый ДокументDOM("http://howknow1c.ru/demo/configxml", "Конфигурация");

//по метаданным обходим все справочники (подробнее см. "Работа с метаданными")
Для каждого Справочник из Метаданные.Справочники Цикл
     
     //создаем элемент и указываем у него 2 атрибута
     элСправочник = XML.СоздатьЭлемент("Справочник");
     элСправочник.УстановитьАтрибут("Имя", Справочник.Имя);
     элСправочник.УстановитьАтрибут("Синоним", Справочник.Синоним);
     
     //по метаданным обходим все реквизиты справочника
     Для каждого Реквизит из Справочник.Реквизиты Цикл
          //создаем элемент и указываем у него 2 атрибута
          элРеквизит = XML.СоздатьЭлемент("Реквизит");
          элРеквизит.УстановитьАтрибут("Имя", Реквизит.Имя);
          элРеквизит.УстановитьАтрибут("Синоним", Реквизит.Синоним);
          //добавляем в список подчиненных элементов узла "Справочник", созданный элемент
          элСправочник.ДобавитьДочерний(элРеквизит);
     КонецЦикла;
     
     //по метаданным обходим все табличные части справочника
     Для каждого ТЧ из Справочник.ТабличныеЧасти Цикл
          элТч = XML.СоздатьЭлемент("ТабличнаяЧасть");
          элТч.УстановитьАтрибут("Имя", ТЧ.Имя);
          элТч.УстановитьАтрибут("Синоним", ТЧ.Синоним);
          
          Для каждого Реквизит из ТЧ.Реквизиты Цикл
               элРеквизит = XML.СоздатьЭлемент("Реквизит");
               элРеквизит.УстановитьАтрибут("Имя", Реквизит.Имя);
               элРеквизит.УстановитьАтрибут("Синоним", Реквизит.Синоним);
               элТч.ДобавитьДочерний(элРеквизит);
          КонецЦикла;
          
          элСправочник.ДобавитьДочерний(элТч);
     КонецЦикла;
     
     //"ЭлементДокумента" - корневой узел XML документа
     //добавляем в список подчиненных элементов корневого узла созданный ранее элемент
     XML.ЭлементДокумента.ДобавитьДочерний(элСправочник);
     
КонецЦикла;

//отдельно - операция записи созданного XML DOM 1С документа с помощью ПостроительDOM 1C
//ЗаписьXML - структурированная запись XML файла
Файл = Новый ЗаписьXML();
Файл.ОткрытьФайл("D:\СтруктураКонфигурации.xml", "UTF-8");
//ЗаписьDOM - способ конвертировать созданный ранее XML документ для записи
ФайлDOM = Новый ЗаписьDOM();
//производим запись
ФайлDOM.Записать(XML, Файл);
//закрываем файл
Файл.Закрыть();

 

Пример 2 – чтение XML из файла и последующая обработка списка узлов в цикле по порядку с помощью ПостроительDOM 1С


//Считываем файл в объект ДокументXML с помощью ПостроительDOM 1С
Файл = Новый ЧтениеXML();
Файл.ОткрытьФайл("D:\sc\СтруктураКонфигурации.xml");
ФайлDOM = Новый ПостроительDOM();
XML = ФайлDOM.Прочитать(Файл);

//"ЭлементДокумента" - это корневой узел файла XML
//ДочерниеУзлы - это список (массив) дочерних узлов у любого узла XML документа
//В нашем файле сначала идет список "Справочник"
Для каждого элСправочник из XML.ЭлементДокумента.ДочерниеУзлы Цикл
     
     Сообщить("Справочник " + элСправочник.Атрибуты.ПолучитьИменованныйЭлемент("Имя").ЗначениеУзла);
     
     //У каждого справочника внутри список "Реквизит"
     Для каждого элРеквизит из элСправочник.ДочерниеУзлы Цикл
          Сообщить("     реквизит " + элРеквизит.Атрибуты.ПолучитьИменованныйЭлемент("Имя").ЗначениеУзла);
     КонецЦикла;
     
КонецЦикла;

 

Пример 3 – чтение XML XOM 1С из файла и последующая обработка узлов с помощью поиска



Только зарегистрированные пользователи VIP группы могут видеть этот контент.



Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (10 голосов, среднее: 3,40 из 5)
Загрузка...

Добавить комментарий