1С: Работа с внешними файлами. Работа с XML
Описание
Примеры работы с XML. Запись XML файла, чтение XML файла и др.
Оглавление (нажмите, чтобы раскрыть)
Запись XML файла
Пример записи XML файла из 1СФайлXML = Новый ЗаписьXML; //Открываем файл для записи в кодировке UTF-8 ФайлXML.ОткрытьФайл("C:\tmp\1.xml", "UTF-8"); ФайлXML.ЗаписатьОбъявлениеXML(); //Добавляем элемент "Номенклатура" ФайлXML.ЗаписатьНачалоЭлемента("Номенклатура"); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл //Элемент "Строка" //для каждой записи справочника ФайлXML.ЗаписатьНачалоЭлемента("Строка"); //Код записаваем в атрибут ФайлXML.ЗаписатьАтрибут("Код", Выборка.Код); //Наименование записываем в текст элемента ФайлXML.ЗаписатьТекст(Выборка.Наименование); //Закрываем элемент "Строка" ФайлXML.ЗаписатьКонецЭлемента(); КонецЦикла; //Закрываем элемент "Номенклатура" ФайлXML.ЗаписатьКонецЭлемента(); ФайлXML.Закрыть();
Чтение XML + ПостроительDOM
Пример чтения XML файла из 1С с использованием «ПостроительDom»//Формат читаемого файла: //<Номенклатура> // <Строка Код="1">Стол // <Строка Код="2">Стул // ЧтениеXML = Новый ЧтениеXML; //Открываем файл ЧтениеXML.ОткрытьФайл("C:\tmp\1.xml"); //Прочитываем файл ПостроительDOM = Новый ПостроительDOM; ФайлXML = ПостроительDOM.Прочитать(ЧтениеXML); //Получаем список номенклатуры Номенклатура = ФайлXML.ЭлементДокумента.ДочерниеУзлы; //Заносим номенклатру в массив Строки Строки = Новый Массив; Для Каждого Узел из Номенклатура Цикл Строка = Новый Структура("Код,Наименование"); //Получаем значение атрибута "Код" Код = Узел.Атрибуты[0].Значение; //Получаем значение элемента "Строка" Наименование = Узел.ТекстовоеСодержимое; Строка.Код = Код; Строка.Наименование = Наименование; Строки.Добавить(Строка); КонецЦикла; ЧтениеXML.Закрыть();
Чтение XML файла
Пример чтения XML файла из 1С//Формат читаемого файла: //<Номенклатура> // <Строка Код="1">Стол // <Строка Код="2">Стул // ЧтениеXML = Новый ЧтениеXML; //Открываем файл ЧтениеXML.ОткрытьФайл("C:\tmp\1.xml"); Строки = Новый Массив; Пока ЧтениеXML.Прочитать() Цикл Если (ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента) И (ЧтениеXML.Имя = "Строка") Тогда Строка = Новый Структура("Код,Наименование"); //Получаем значение атрибута "Код" Код = ЧтениеXML.ПолучитьАтрибут("Код"); //Получаем значение элемента "Строка" Пока ЧтениеXML.Прочитать() Цикл Если (ЧтениеXML.ТипУзла = ТипУзлаXML.Текст) Тогда Наименование = ЧтениеXML.Значение; Прервать; КонецЕсли; КонецЦикла; Строка.Код = Код; Строка.Наименование = Наименование; Строки.Добавить(Строка); КонецЕсли; КонецЦикла; ЧтениеXML.Закрыть();