gifts2017

Парсинг, преобразование, редактирование XML

Опубликовал Евген Каравашкин (Lokiy) в раздел Обмен - Обмен через XML

Появилась задача, изменить правила обмена так, чтобы выкинуть из них правила конвертации некоторых узлов и элементов, которые часто встречаются. Я решил, что можно просто быстро пробежаться про всем узлам и, если имена узлов соответствуют определенным критериям, удалить их.
Поэтому для начала я сделал обработку, которая просто читает XML, и тут же его записывает, сохраняя структуру.
Выкладываю, может, кому-то пригодится или будет полезна в качестве примера.
Файл = Новый ЧтениеXML;
Файл.ОткрытьФайл(ФайлЗагрузки);

//Файл записи реструктурированного XML
ФайлЗ=Новый Файл(ФайлЗагрузки);
ЗаписьXML=Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ФайлЗ.Путь+"\"+ФайлЗ.ИмяБезРасширения+"restructed."+ФайлЗ.Расширение);
ЗаписьXML.ЗаписатьОбъявлениеXML();

счетчик=0;

Пока Файл.Прочитать() Цикл
счетчик=счетчик+1;
Состояние(счетчик);

Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

ЗаписьXML.ЗаписатьНачалоЭлемента(Файл.Имя);

Пока Файл.ПрочитатьАтрибут() Цикл 
ЗаписьXML.ЗаписатьАтрибут(Файл.Имя,Файл.Значение);
КонецЦикла; 

КонецЕсли;

Если Файл.ТипУзла = ТипУзлаXML.Текст Тогда
ЗаписьXML.ЗаписатьТекст(Файл.Значение);
КонецЕсли;


Если Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда 
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
КонецЦикла; 

Файл.Закрыть(); 

ЗаписьXML.Закрыть();

Скачать файлы

Наименование Файл Версия Размер
РаботаСXML.epf 13
.epf 6,76Kb
19.08.13
13
.epf 6,76Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Данила Елистратов (CagoBHuK) 21.08.13 11:40
Прочитали, как пользоваться XSLT?
2. Евген Каравашкин (Lokiy) 22.08.13 09:46
(1) Увы. но уже не актуально, задача решена, на будущее буду иметь в виду.
3. Сергей Курышов (sudmorsh) 22.08.13 12:39
Повторение - мать учения
4. Denis j (Xatori111) 23.08.13 16:41
(3)Повторение - мать заикания :)