Имя: Пароль:
1C
1C 7.7
v7: Чтение XML
0 dll
 
03.02.15
03:52
не могу разобраться с xml...


есть 3х узельный xml, не могу вытащить - "nomenclature, count, price"
знатоки помогите пожалуйста


-<sales>
-<sale>
<date>01.09.2014</date>
<sale_point>000001032</sale_point>
<payed>0.0</payed>
-<items>
-<item>
<nomenclature>000000030</nomenclature>
<count>49.476549999999996</count>
<price>210.0</price>
</item>
+<item>
+<item>
+<item>
+<item>
+<item>
+<item>
+<item>
</items>
</sale>

+<sale>

+<sale>

+<sale>
</sales>


    Анализатор=СоздатьОбъект("AddIn.XMLParser");
    XMLДокумент=Анализатор.СоздатьДокумент();
    XMLДокумент.Загрузить(ПутьР);  
    
    ЭлДокумент = XMLДокумент.ВыбратьУзел("sales");
    Выборка=ЭлДокумент.ВыбратьУзлы("sale");
    
    Для сч1 = 1 По Выборка.КоличествоУзлов Цикл
        Док = Выборка.ПолучитьУзел(сч1-1);
    
    Data = Док.ВыбратьУзел("date").Значение;
    sale_point = Док.ВыбратьУзел("sale_point").Значение;
    payed = Док.ВыбратьУзел("payed").Значение;
        КонецЦикла;
1 VladZ
 
03.02.15
05:08
А в чем проблема? Данные у тебя в разделе items. Выбирай итемсы и поберешься до своих данных
2 dll
 
03.02.15
09:02
(1) не могу получить узел - items-item
3 ProgAL
 
03.02.15
09:21
Data = Док.ВыбратьУзел("date").Значение;   В этом же цикле делай выборку по items, и еще 1 цикл внутри нее по item.
4 dll
 
03.02.15
10:11
(3) что не так делаю?

    Анализатор=СоздатьОбъект("AddIn.XMLParser");
    XMLДокумент=Анализатор.СоздатьДокумент();
    XMLДокумент.Загрузить(ПутьР);  
    
    ЭлДокумент = XMLДокумент.ВыбратьУзел("sales");
    Выборка=ЭлДокумент.ВыбратьУзлы("sale");
    
    
    
    Для сч1 = 1 По Выборка.КоличествоУзлов Цикл
        Док = Выборка.ПолучитьУзел(сч1-1);
        
        Data = Док.ВыбратьУзел("date").Значение;
        sale_point = Док.ВыбратьУзел("sale_point").Значение;
        payed = Док.ВыбратьУзел("payed").Значение;  
        
        
        ЭлДок = XMLДокумент.ВыбратьУзел("items");
        ВыборкаItem = ЭлДок.ВыбратьУзлы("item");
        
        
        Для сч2 = 1 По ВыборкаItem.КоличествоУзлов Цикл
            Док2 = ВыборкаItem.ПолучитьУзел(сч2-2);
            
            nomen = ВыборкаItem.ВыбратьУзел("nomenclature").Значение;
            Сообщить(nomen);
            
        КонецЦикла;
        
        
    КонецЦикла;
5 dll
 
03.02.15
10:12
ругается на:
ВыборкаItem = ЭлДок.ВыбратьУзлы("item");
{Документ.ЗагрузкаВыгрузкаXML.Форма.Модуль(656)}: Значение не представляет агрегатный объект (ВыбратьУзлы)
6 Rie
 
03.02.15
10:15
(5) А кто такой ЭлДок?
7 VladZ
 
03.02.15
10:19
Идемсы = Док.ВыбратьУзел("items");
ВыборкаItem = Идемсы.ВыбратьУзлы("item");

Выбираешь из выборки.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn