Имя: Пароль:
1C
 
Чтение из XML
,
0 Garikus
 
16.07.18
10:39
Доброго времени суток,
подскажите как прочитать XML файл подобного содержимого

<doc Контрагент="Вася Пупкин" Водитель="Иванов И.В." АдресДоставки="623780, Свердловская обл, ">
        <tovar Номенклатура="Гвозди "Количество="42"/>
        <tovar Номенклатура="Гвозди" Количество="20"/>
        <tovar Номенклатура="Шурупы" Количество="6"/>
        <tovar Номенклатура="Болты" Количество="6"/>
    </doc>

Пытаюсь след образом, читает только doc, как к доку прочитать tovar

Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            ЧтениеXML.Имя = "doc" тогда
            
            //Контрагент = ЧтениеXML.ЗначениеАтрибута("Контрагент");    
            ст = Результат.Добавить();
            Ст.Контрагент = ЧтениеXML.ЗначениеАтрибута("Контрагент");
            Ст.Водитель = ЧтениеXML.ЗначениеАтрибута("Водитель");
            Ст.Адрес = ЧтениеXML.ЗначениеАтрибута("АдресДоставки");
            //ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            //ЧтениеXML.Имя = "tovar" тогда
            Пока ЧтениеXML.Имя = "tovar" Цикл
            //Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            //ЧтениеXML.Имя = "tovar" тогда
            строк = Результат.Добавить();
            строк.Номенклатура = ЧтениеXML.ЗначениеАтрибута("Номенклатура");
            строк.Количество = ЧтениеXML.ЗначениеАтрибута("Количество");
        //КонецЕсли;
        КонецЦикла;
            
      КонецЕсли;
КонецЦикла;
1 1Сергей
 
16.07.18
10:41
...
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            ЧтениеXML.Имя = "doc" тогда
...
Пока ЧтениеXML.Имя = "tovar" Цикл
...



Понимаешь же, что он в этот цикл никогда не зайдёт?
2 Garikus
 
16.07.18
10:43
(1) Тут да не поправил, уже откровенный тупизм напал(((
3 1Сергей
 
16.07.18
10:44
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    Если ЧтениеXML.Имя = "doc" тогда
        ....
    ИначеЕсли ЧтениеXML.Имя = "tovar" тогда
        ....
4 1Сергей
 
16.07.18
10:45
а внутренний цикл не нужен
5 Garikus
 
16.07.18
10:45
(4)
Только написал и сам все понял )))

Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            ЧтениеXML.Имя = "doc" тогда
            
            //Контрагент = ЧтениеXML.ЗначениеАтрибута("Контрагент");    
            ст = Результат.Добавить();
            Ст.Контрагент = ЧтениеXML.ЗначениеАтрибута("Контрагент");
            Ст.Водитель = ЧтениеXML.ЗначениеАтрибута("Водитель");
            Ст.Адрес = ЧтениеXML.ЗначениеАтрибута("АдресДоставки");
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            ЧтениеXML.Имя = "tovar" тогда
                        //Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И
            //ЧтениеXML.Имя = "tovar" тогда
            строк = Результат.Добавить();
            строк.Номенклатура = ЧтениеXML.ЗначениеАтрибута("Номенклатура");
            строк.Количество = ЧтениеXML.ЗначениеАтрибута("Количество");
          
            
      КонецЕсли;
КонецЦикла;    

Тупил полтора часа)))
6 Garikus
 
16.07.18
10:46
Извиняйте за беспокойство
Основная теорема систематики: Новые системы плодят новые проблемы.