Появилась задача, изменить правила обмена так, чтобы выкинуть из них правила конвертации некоторых узлов и элементов, которые часто встречаются. Я решил, что можно просто быстро пробежаться про всем узлам и, если имена узлов соответствуют определенным критериям, удалить их.
Поэтому для начала я сделал обработку, которая просто читает XML, и тут же его записывает, сохраняя структуру.
Выкладываю, может, кому-то пригодится или будет полезна в качестве примера.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование |
Скачано |
Купить файл (только для физ. лиц) |
По подписке PRO
|
РаботаСXML.epf
.epf 6,76Kb
|
14 |
1 850 руб.
Купить
|
1 SM
Скачать
|
Подписка
PRO — скачивайте любые файлы со
скидкой до 85% из Базы знаний
Оформите подписку на
компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкой
Файл = Новый ЧтениеXML;
Файл.ОткрытьФайл(ФайлЗагрузки);
//Файл записи реструктурированного XML
ФайлЗ=Новый Файл(ФайлЗагрузки);
ЗаписьXML=Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ФайлЗ.Путь+"\"+ФайлЗ.ИмяБезРасширения+"restructed."+ФайлЗ.Расширение);
ЗаписьXML.ЗаписатьОбъявлениеXML();
счетчик=0;
Пока Файл.Прочитать() Цикл
счетчик=счетчик+1;
Состояние(счетчик);
Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента(Файл.Имя);
Пока Файл.ПрочитатьАтрибут() Цикл
ЗаписьXML.ЗаписатьАтрибут(Файл.Имя,Файл.Значение);
КонецЦикла;
КонецЕсли;
Если Файл.ТипУзла = ТипУзлаXML.Текст Тогда
ЗаписьXML.ЗаписатьТекст(Файл.Значение);
КонецЕсли;
Если Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЦикла;
Файл.Закрыть();
ЗаписьXML.Закрыть();
Вступайте в нашу телеграмм-группу
Инфостарт
xml парсинг преобразование редактирование