Разборка-сборка XML


Используя эту разработку, можно обрабатывать XML как  дерево значений 1С, даже не умея читать или записывать XML.

Если вам лень заниматься чтением и записью XML, то используя эту разработку, вы можете обрабатывать XML как обычное дерево значений.

Сразу предупреждаю, что ЧтениеXML был задуман как объект, не нагружающий память, поэтому для сверхбольших XML файлов я бы рекомендовал использовать прямое ЧтениеXML.

Но если файлы средних размеров, метод имеет право на жизнь.

Для разбора XML вы должны использовать код вида:

Ч = Новый ЧтениеXML();

Ч.ОткрытьФайл(ИмяГлавногоФайла);

П = ___обРазобратьXML(Ч);

Ч.Закрыть();

 

Все, XML файл прочитается, и запишется в структуру с полями:

Дерево - дерево разбора

Кодировка - кодировка XML

Дерево - это дерево с колонками:

Тег - имя тега

Тело - тело тега

Атрибуты – соответствие: в ключах - имена атрибутов, в значениях - значения атрибутов.

Тип - пустая колонка, зарезервирована

Вы можете обработать дерево и записать полученный результат в файл.

А можно просто создать структуру с такой же структурой и программно заполнить дерево нужной структурой XML:

П = Новый Структура();

П.Вставить("Кодировка", Ч.КодировкаИсточника);

Дерево = Новый ДеревоЗначений();

Дерево.Колонки.Добавить("Тег");

Дерево.Колонки.Добавить("Тело");

Дерево.Колонки.Добавить("Атрибуты");

Дерево.Колонки.Добавить("Тип");

П.Вставить("Дерево", Дерево);

 

Чтобы записать дерево в XML строку, используется код вида:

З = Новый ЗаписьXML;

З.УстановитьСтроку(П.Кодировка);

___обСобратьXML(П, З);

РезСтрока = З.Закрыть();

 

Чтобы записать дерево в XML файл, используется код вида:

З = Новый ЗаписьXML;

З.ОткрытьФайл(ИмяФайла);

___обСобратьXML(П, З);

З.Закрыть();

 

В обработке для примера файл разбирается, а затем собирается. Можно посмотреть на различия после разборки-сборки.

Файлы обработки:

-



Back to top