1CLenta.ru  

Записать, прочитать XML файл из DomDocument

Программирование системы     27.08.2016 11:08     14332

В 1С можно распарсить XML файл с помощью COM объекта "Msxml2.DOMDocument". В зависимости от установленного программного обеспечения, доступны различные версии "Дом документа". Подробно, свойства и методы различных версий DOMDocument описаны в MSDN.

Версии DomDocument
Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.4.0
Msxml2.DOMDocument.5.0
Msxml2.DOMDocument.6.0

Для того чтобы создать или парсить xml, существуют примеры написанные с использованием встроенных объектов (ЗаписьXML, ЧтениеXML) языка программирования 1С. При сложной структуре xml, объём программного кода в таких примерах может быть очень большим. При использовании "Msxml2.DOMDocument" программный код можно сделать более компактным и получить более гибкий механизм обращения к узлам XML документа.

Технология DOMDocument предоставляет удобные методы для работы с данными в виде XML. В данном объекте, структура данных представлена в виде дерева узлов. Все узлы, являются подчиненными к корневому. Благодаря DOMDocument можно перебирать, создавать, удалять, копировать узлы и выполнять многие другие действия.

Создать, записать XML файл


Функция СоздатьXML()

Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;

//Записать объявление XML
XML = DomDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""");
DomDocument.insertBefore(XML,);

//Создать корневой узел
ElementRootTag = DomDocument.createElement("RootTag");

//Создать подчиненный узел
ElementTag = DomDocument.createElement("Tag");
ElementTag.setAttribute("ИмяАтрибута","ЗначениеАтрибута");
ElementText = DomDocument.createTextNode("Текст");
ElementTag.appendChild(ElementText);
CDATA = DomDocument.createCDATASection("Значение");
ElementTag.appendChild(CDATA);

//Записать узлы
ElementRootTag.appendChild(ElementTag);
DomDocument.appendChild(ElementRootTag);

//Записать файл
DomDocument.Save("C:\Test.xml");

//Сформированный XML текст
XMLТекст = DomDocument.xml;

КонецФункции


Прочитать XML файл


Функция СчитатьXML()

Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;

//Загрузить XML из строки
DomDocument.loadXML("<?xml version=""1.0"" encoding=""UTF-8""?>
|<RootTag>
|<Tag Имя="
"Значение"">Текст[CDATA[Значение]]</Tag>
|</RootTag>"
);

//Загрузить файл XML
DomDocument.load("C:\Test.xml");

Если DomDocument.parseError.errorCode <> 0 Тогда
Сообщить("Ошибка: XML файл не валидный");
Возврат Ложь;
КонецЕсли;

//Выбрать узлы
Nodes = DomDocument.SelectNodes("Tag");

Для Индекс = 0 По Nodes.Length - 1 Цикл
ЗначениеАтрибута = Nodes.Item(Индекс).getAttribute("ИмяАтрибута");
Tag = Nodes.Item(Индекс);
КонецЦикла;

КонецФункции


Похожие статьи:
ЗаписьXML, ЧтениеXML в 1С:Предприятии
Запись, чтение XML из ДокументDOM

Комментарии (0)