![]() |
![]() |
![]() |
|
1С8 XML перебрать внутренный узел | ☑ | ||
---|---|---|---|---|
0
Lesha1C
12.01.11
✎
12:48
|
Есть структура XML
<Выгрузка> - <Приходная Номер="АВ000000001" "> <Номенклатура Номер="АВ000000002" Номенклатура="Номенкл2" /> <Номенклатура Номер="АВ000000001" Номенклатура="Номенкл1" /> </Приходная> - <Приходная Номер="АВ000000002"> <Номенклатура Номер="АВ000000003" Номенклатура="Номенкл3" /> <Номенклатура Номер="АВ000000001" Номенклатура="Номенкл1" /> </Приходная> С помощью DOM+XPath находим перебираем документы приходная ХМЛ = Новый ЧтениеXML; ХМЛ.ОткрытьФайл(Путь+"vPROJECT-M.xml"); ПостроительДОМ = Новый ПостроительDOM(); ДокументDOM = ПостроительДОМ.Прочитать(ХМЛ); ВыражениеXPath = ДокументDOM.СоздатьВыражениеXPath("//Приходная", Новый РазыменовательПространствИменDOM(ДокументDOM)); РезультатXPath = ВыражениеXPath.Вычислить(ДокументDOM); УзелDOM = РезультатXPath.ПолучитьСледующий(); Пока УзелDOM <> Неопределено Цикл кд=УзелDOM.ПолучитьАтрибут("Номер"); Сообщить(кд); УзелDOM = РезультатXPath.ПолучитьСледующий(); КонецЦикла; ХМЛ.Закрыть(); ЗАДАЧА: КАК ПЕРЕБРАТЬ НОМЕНКЛАТУРУ В КАЖДОМ ДОКУМЕНТЕ? |
|||
1
BadTouch
12.01.11
✎
13:12
|
А чем тебя обычное чтение XML не устраивает? Обязательно через DOM?
|
|||
2
BadTouch
12.01.11
✎
13:13
|
Просто по "ЧтениеXML" я могу подсказать,а вот DOM ни разу не было нужно...
|
|||
3
Lesha1C
12.01.11
✎
14:48
|
ну допустим просто "ЧтениеXML", как перебрать данную структуру?
|
|||
4
Lesha1C
12.01.11
✎
15:01
|
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(Путь+"test.xml"); Пока Чтение.Прочитать() Цикл Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если Чтение.Имя="Приходная" Тогда КодДокумента =СокрЛП(Чтение.ПолучитьАтрибут("Номер")); ДатаДокумента =Чтение.ПолучитьАтрибут("Дата"); КонецЕсли; КонецЕсли; КонецЦикла; как вытащить номенклатуру??? |
|||
5
qeos
12.01.11
✎
15:03
|
смею предположить Чтение.ПолучитьАтрибут("Номенклатура")
|
|||
6
Lesha1C
12.01.11
✎
15:14
|
дак ты выберешь атрибут номенклатура, а нужно узел номенклатура и к нему обратиться уже и вытащить атрибуты код номенклатуры, наименование, количество и т.д.
|
|||
7
Lesha1C
12.01.11
✎
18:06
|
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(Путь+"test.xml"); Пока Чтение.Прочитать() Цикл Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если Чтение.Имя="Приходная" Тогда КодДокумента =СокрЛП(Чтение.ПолучитьАтрибут("Номер")); ДатаДокумента =Чтение.ПолучитьАтрибут("Дата"); КонецЕсли; Если Чтение.Имя="Номенклатура" Тогда номенкл= Чтение.ПолучитьАтрибут("Номенклатура"); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
8
Lesha1C
12.01.11
✎
18:07
|
ВОТ ТАК РАБОТАЕТ!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |