|
v7: Считывание XML файлов |
☑ |
0
Славянин
19.12.16
✎
16:08
|
Доброго времени суток. Подскажите пожалуйста.
Сформировал несколько выходных xml - файлов.
Теперь мне нужно их все обработать и загрузить.
Как это можно сделать. Каков должен быть цикл? нужно пользоваться методами внешней компоненты или можно стандартыми конструкциями 1С это сделать?
|
|
1
Cool_Profi
19.12.16
✎
16:10
|
ФС.НайтиФайлы()
Пока ФС.НайтиСледующий() = 1 (или получить, не помню)
//читаешь свой файл
|
|
2
Это_mike
19.12.16
✎
16:14
|
(1) учишь читать СП? :-)
|
|
3
Cool_Profi
19.12.16
✎
16:16
|
(2) Не моё это. Из меня учитель - как из тебя ВВП.
|
|
4
vcv
19.12.16
✎
16:16
|
Почти в любой типовой конфигурации от 1С есть какая-нибудь загрузка/выгрузка XML. Читать исходники, много думать.
|
|
5
Chum
19.12.16
✎
16:47
|
|
|
6
Злопчинский
19.12.16
✎
21:26
|
Иксемель = СоздатьОбъект("Microsoft.XMLDOM");
Иксемель.Load(ФайлДанных);
Корень = Иксемель.DocumentElement;
ОбработатьУзел(Корень, 0); //тест чтения
|
|
7
Злопчинский
19.12.16
✎
21:27
|
//**************************************************************************************
//
Процедура ОбработатьУзел(Узел, Уровень=0)
Состояние(Уровень);
КолвоУзлов = Узел.childNodes.length;
Для СчУзлов = 0 По КолвоУзлов-1 Цикл
ТекУзел = Узел.childNodes.item(СчУзлов);
Если ТекУзел.nodeType <> 1 Тогда Продолжить; КонецЕсли;
Стр = Формат("","С"+Уровень*8);
СтрАтрибуты = "";
Для счАтрибутов = 0 По ТекУзел.attributes.length-1 Цикл
Атрибут = ТекУзел.attributes.item(счАтрибутов);
СтрАтрибуты = СтрАтрибуты + ?(СтрАтрибуты="","",";") + Атрибут.nodename+"="+Атрибут.value;
КонецЦикла;
ТекстУзла = "";
Если ТекУзел.childNodes.length = 1 Тогда
Если ТекУзел.childNodes.item(0).nodetype = 3 Тогда ТекстУзла = ТекУзел.childNodes.item(0).text; КонецЕсли;
КонецЕсли;
Стр = Стр + ТекУзел.tagName + ?(СтрАтрибуты="","","("+СтрАтрибуты+")" ) + ": " +ТекстУзла;
Сообщить(Стр);
ОбработатьУзел(ТекУзел, Уровень+1);
КонецЦикла;
Состояние("");
КонецПроцедуры // ОбработатьУзел()
|
|