Книга знаний

Рекламное место пустует
1С:Предприятие / Приемы программирования / Обмен данными, УРБД

Работа с XML по интерфейсу DOM

Автор статьи: romix
Последняя редакция №1 от 08.05.09
URL: http://kb.mista.ru/article.php?id=748

Ключевые слова: xml, dom


Примеры для 1С:Предприятие 7.7

Запись в XML



//*******************************************
Процедура _ЗаписатьВXML()
    ок=1;
    
    имяф=КаталогИБ()+"tovar3.xml";
    
    tt1=_GetPerformanceCounter();
    
        
    
    Сообщить("Запись XML-файла: "+имяф);
    
    objDom=СоздатьОбъект("MSXML.DOMDocument");
    xnodePINode =objDom.CreateProcessingInstruction("xml", "version='1.0' encoding='windows-1251'");
    objDom.insertBefore(xnodePINode,);
    
    elem1 = objDom.createElement("Товары");
    objDom.appendChild(elem1);

    
    о=СоздатьОбъект("Справочник.Товары");
    
    о.ВыбратьЭлементы();
    Пока о.ПолучитьЭлемент()=1 Цикл
        Если о.ЭтоГруппа()=1 Тогда
            Продолжить;
        КонецЕсли;    
        Если о.ПометкаУдаления()=1 Тогда
            Продолжить;
        КонецЕсли;
        
        elem2 = objDom.createElement("Элемент");
        elem1.appendChild(elem2);
        
          attr2 = objDom.createAttribute("Код");
          attr2.nodeValue = о.Код;
          elem2.setAttributeNode(attr2);
        
          attr2 = objDom.createAttribute("Наименование");
          attr2.nodeValue = о.Наименование;
          elem2.setAttributeNode(attr2);
        
          attr2 = objDom.createAttribute("Единица");
          attr2.nodeValue = СокрЛП(о.Единица);
          elem2.setAttributeNode(attr2);
        
          attr2 = objDom.createAttribute("Цена");
          attr2.nodeValue = Число1(о.Цена);
          elem2.setAttributeNode(attr2);
        
    КонецЦикла;

    
    objDom.save(ИмяФ);    
    
    tt2=_GetPerformanceCounter();
    
    Сообщить("Время выполнения: "+(tt2-tt1)/1000+" секунд");

    
КонецПроцедуры    


См. также



Книга знаний: Чтение и запись текстовых файлов XML средствами 1С:Предприятие 7.7

Книга знаний: v8: Пример чтения XML через XML DOM

Чтение из XML


//*******************************************
Процедура _СверитьСXML()
    
    tt1=_GetPerformanceCounter();
    
    
    имяф=КаталогИБ()+"tovar3.xml";
    Сообщить("Проверка XML-файла: "+имяф);
    
    
    objDom=СоздатьОбъект("MSXML.DOMDocument");
    objDom.load(имяф);
    
    
    о=СоздатьОбъект("Справочник.Товары");
    obj = objDom.selectNodes("//Товары") ;
    Для i1 = 0 По obj.length - 1 Цикл
        obj1=obj.item(i1);
        для i2=1 по obj1.childNodes.length Цикл
            obj2=obj1.childNodes.item(i2-1); 
        
        
            Код=0+obj2.getAttribute("Код");
              Если о.НайтиПоКоду(Код,0)=0 Тогда
                  Сообщить("Код не найден: "+код);
                  ок=0;
            КонецЕсли;    
              
            
            Наименование=obj2.getAttribute("Наименование");
            Единица=obj2.getAttribute("Единица");
            Цена=0+obj2.getAttribute("Цена");
            
              
              Если СокрП(о.Наименование)<>СокрП(Наименование) Тогда
                  Сообщить("Наименования не соответствуют для кода: "+код);
                  Сообщить("Наименование в базе: "+о.Наименование);
                  Сообщить("Наименование в XML : "+Наименование);
                  ок=0;
              КонецЕсли;    
    
              Если СокрП(о.Единица)<>СокрП(Единица) Тогда
                  Сообщить("Единицы не соответствуют для кода: "+код);
                  Сообщить("Единица в базе: "+о.Единица);
                  Сообщить("Единица в XML : "+Единица);
                  ок=0;
              КонецЕсли;    
              
              Если о.Цена<>Цена Тогда
                  Сообщить("Цены не соответствуют для кода: "+код);
                  Сообщить("Цена в базе: "+о.Цена);
                  Сообщить("Цена в XML : "+Цена);
                  ок=0;
              КонецЕсли;    
        КонецЦикла;
    КонецЦикла;

    
    tt2=_GetPerformanceCounter();
    Сообщить("Время выполнения: "+(tt2-tt1)/1000+" секунд");
    
    

КонецПроцедуры
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2021 | Mista.ru

Яндекс.Метрика