|
Чтение XML, перебор вложенного узла | ☑ | ||
---|---|---|---|---|
0
KDS
05.06.20
✎
14:51
|
Добрый день форумчане. Не могу разобраться с загрузкой вложенного узла XML документа, как его обойти и добавить в структуру (массив)
Первая часть до перебора строк товаров читается нормально [URL=https://hostingkartinok.com/show-image.php?id=2c51cb26ddd5f4b9693d1eb3b43b41c2][IMG]https://s8.hostingkartinok.com/uploads/images/2020/06/2c51cb26ddd5f4b9693d1eb3b43b41c2.jpg[/IMG][/URL] ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(ПутьКФайлу); МассивВыгрузки = Новый Массив(); Пока Чтение.Прочитать() Цикл Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента и Чтение.Имя="ПоступлениеДок" Тогда Структура = Новый Структура; Структура.Вставить("Номер",Чтение.ЗначениеАтрибута("Номер")); Структура.Вставить("Дата",Чтение.ЗначениеАтрибута("Дата")); Структура.Вставить("Склад",Чтение.ЗначениеАтрибута("Склад")); Структура.Вставить("Контрагент",Чтение.ЗначениеАтрибута("Контрагент")); Структура.Вставить("КонтрагентИНН",Чтение.ЗначениеАтрибута("КонтрагентИНН")); Структура.Вставить("Организация",Чтение.ЗначениеАтрибута("Организация")); Структура.Вставить("ДоговорКонтрагента",Чтение.ЗначениеАтрибута("ДоговорКонтрагента")); Структура.Вставить("Ответственный",Чтение.ЗначениеАтрибута("Ответственный")); Структура.Вставить("НомерВходящегоДокумента",Чтение.ЗначениеАтрибута("НомерВходящегоДокумента")); Структура.Вставить("ДатаВходящегоДокумента",Чтение.ЗначениеАтрибута("ДатаВходящегоДокумента")); Структура.Вставить("СчетУчетаРасчетовСКонтрагентом",Чтение.ЗначениеАтрибута("СчетУчетаРасчетовСКонтрагентом")); Структура.Вставить("СуммаДокумента",Чтение.ЗначениеАтрибута("СуммаДокумента")); Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя = "ТЧТовары" Тогда МассивТЧ = Новый Массив(); Пока Чтение.ПрочитатьАтрибут() Цикл СтруктураТЧ = Новый Структура; СтруктураТЧ.Вставить("Номенклатура",Чтение.ЗначениеАтрибута("Номенклатура")); СтруктураТЧ.Вставить("ЕдиницаИзмерения",Чтение.ЗначениеАтрибута("ЕдиницаИзмерения")); СтруктураТЧ.Вставить("Коэффициент",Чтение.ЗначениеАтрибута("Коэффициент")); СтруктураТЧ.Вставить("Количество",Чтение.ЗначениеАтрибута("Количество")); СтруктураТЧ.Вставить("Цена",Чтение.ЗначениеАтрибута("Цена")); СтруктураТЧ.Вставить("Сумма",Чтение.ЗначениеАтрибута("Сумма")); СтруктураТЧ.Вставить("СтавкаНДС",Чтение.ЗначениеАтрибута("СтавкаНДС")); СтруктураТЧ.Вставить("СуммаНДС",Чтение.ЗначениеАтрибута("СуммаНДС")); СтруктураТЧ.Вставить("ОтражениеВУСН",Чтение.ЗначениеАтрибута("ОтражениеВУСН")); МассивТЧ.Добавить(СтруктураТЧ); КонецЦикла; Структура.Вставить("Товары",МассивТЧ); КонецЕсли; Иначе Продолжить; КонецЕсли; МассивВыгрузки.Добавить(Структура); КонецЦикла; |
|||
1
KDS
05.06.20
✎
14:51
|
||||
2
arsik
гуру
05.06.20
✎
14:53
|
Читай через DOM, тогда у тебя дерево будет, а так у тебя просто элементы друг за другом.
|
|||
3
arsik
гуру
05.06.20
✎
14:54
|
+(2) Вот например http://howknow1c.ru/jazyk-1s/postroiteldom-1s-zapisdom-1s.html
|
|||
4
arsik
гуру
05.06.20
✎
14:56
|
+(3) Или через XDTO http://catalog.mista.ru/public/311011/
|
|||
5
KDS
05.06.20
✎
15:03
|
Спасибо, пошел курить XDTO )))
|
|||
6
KDS
05.06.20
✎
15:50
|
(4) Спасибо за дельный совет, всё работает!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |