26 окт. 2016 г.

Прочитать xml 7.7

Подключаясь  к АПИ "Новой почты", сервис отдает строку в виде хмл документа с которого нужно получить значения тегов.

Для разбора хмл будем использовать v7plus.dll.
Два файла из архива нужно закинуть в C:\Program Files (x86)\1Cv77\BIN\
И после этого запустить cmd.exe от имени администратора и выполнить
regsvr32 /u "C:\Program Files (x86)\1Cv77\BIN\v7chart.dll"

Запись в хмл документ из строки
 Попытка
  ТекстовыйДокумент = СоздатьОбъект("Текст"); 
  ТекстовыйДокумент.Записать("D:\1.xml"); 
  
  ТекстовыйДокумент.Открыть("D:\1.xml");
  ТекстовыйДокумент.ДобавитьСтроку(ИмяВыбрФайла);  
  ТекстовыйДокумент.КодоваяСтраница(0);  
  ТекстовыйДокумент.Записать("D:\1.xml");         
  Предупреждение("ОК");    
 Исключение    
  Сообщить(ОписаниеОшибки());
 КонецПопытки;
!ИмяВыбрФайла - это строка в виде хмл от "новой почты"

Чтение файла хмл
 Если ЗагрузитьВнешнююКомпоненту("v7plus.dll") = 0 Тогда 
  Предупреждение("v7plus!"); 
  Возврат; 
 КонецЕсли; 
 
 XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
 XMLДокумент = XMLАнализатор.СоздатьДокумент();
 XMLДокумент.Загрузить("D:\1.xml");
 XMLКорневойРаздел = XMLДокумент.ВыбратьУзлы("*");
 XMLКорневойРаздел = XMLКорневойРаздел.ПолучитьУзел(0);
 ДанныеXML = XMLКорневойРаздел.ВыбратьУзлы("*");
 Для Сч1 = 0 По ДанныеXML.КоличествоУзлов() - 1 Цикл
  ТС = ДанныеXML.ПолучитьУзел(Сч1);   
  
  ДанныеXML2 = ТС.ВыбратьУзлы("*");     
  Для Сч2 = 0 По ДанныеXML2.КоличествоУзлов() - 1 Цикл  
   ТС2 = ДанныеXML2.ПолучитьУзел(Сч2);  
   
   ДанныеXML3 = ТС2.ВыбратьУзлы("*");  
   Для Сч3 = 0 По ДанныеXML3.КоличествоУзлов() - 1 Цикл   
    ТС3 = ДанныеXML3.ПолучитьУзел(Сч3);  
    Сообщить(ТС3.Текст);  
   КонецЦикла;

  КонецЦикла;  
 КонецЦикла;  
на выходе получаю

 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07