|
Как прочесть дочерние элементы XML | ☑ | ||
---|---|---|---|---|
0
antihacker
19.10.15
✎
11:30
|
Всем привет ! Вот ХМЛ
<?xml version="1.0" encoding="UTF-8"?> -<Orders>-<REQUISITES CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220" WareHouseGuid="1712181c-90cb-11e0-9cb8-f6f50ef82aee" OrderGuid="9659bcc2-71a0-11e5-a25b-8056f29d9214" MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b"><Food FoodCount="45.00" FoodGUID="Печенье Алматинское "CACAO cookies" 0,400 гр."/><Food FoodCount="25.00" FoodGUID="Салфетка Карина 50 шт 1112222222222222222222"/></REQUISITES>-<REQUISITES CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" OrderGuid="05bcd74c-7321-11e5-a25b-8056f29d9214" MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b"><Food FoodCount="1*225.00" FoodGUID="Печенье Алматинское "CACAO cookies" 0,400 гр."/><Food FoodCount="7*825.00" FoodGUID="Салфетка Карина 50 шт 1112222222222222222222"/></REQUISITES><REQUISITES CustomerGuid="4e8273f9-e877-11e1-a6eb-f6f50ef82aee" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" OrderGuid="49258284-7322-11e5-a25b-8056f29d9214" MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b"/></Orders> А так читаю Элементы ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(InputOrderData.Получить()); //создаем колонки Пока ЧтениеXMl.Прочитать() Цикл //***********Общие реквизиты*************************** Если ЧтениеXMl.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXMl.Имя = "REQUISITES" Тогда Пока ЧтениеXMl.ПрочитатьАтрибут() Цикл //GUID заказа Если ЧтениеXMl.Имя="MPGuid" Тогда MPGUID=СокрЛП(ЧтениеXMl.Значение); КонецЕсли; //GUID заказа Если ЧтениеXMl.Имя="OrderGuid" Тогда OrderGUID=СокрЛП(ЧтениеXMl.Значение); КонецЕсли; //GUID склада Если ЧтениеXMl.Имя="WareHouseGuid" Тогда WareHouseGUID=СокрЛП(ЧтениеXMl.Значение); КонецЕсли; //GUID Контрагента Если ЧтениеXMl.Имя="CustomerGuid" Тогда CustomerGUID=СокрЛП(ЧтениеXMl.Значение); КонецЕсли; КонецЦикла; А как прочитать дочерние элементы значения атрибут досерных элементв Food & |
|||
1
antihacker
19.10.15
✎
11:42
|
<?xml version="1.0" encoding="UTF-8"?>
<Orders> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="9659bcc2-71a0-11e5-a25b-8056f29d9214" WareHouseGuid="1712181c-90cb-11e0-9cb8-f6f50ef82aee" CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220"> <Food FoodGUID="Печенье Алматинское "CACAO cookies" 0,400 гр." FoodCount="45.00"/> <Food FoodGUID="Салфетка Карина 50 шт 1112222222222222222222" FoodCount="25.00"/> </REQUISITES> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="05bcd74c-7321-11e5-a25b-8056f29d9214" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220"> <Food FoodGUID="Печенье Алматинское "CACAO cookies" 0,400 гр." FoodCount="1*225.00"/> <Food FoodGUID="Салфетка Карина 50 шт 1112222222222222222222" FoodCount="7*825.00"/> </REQUISITES> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="49258284-7322-11e5-a25b-8056f29d9214" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" CustomerGuid="4e8273f9-e877-11e1-a6eb-f6f50ef82aee"/> </Orders> |
|||
2
Fragster
гуру
19.10.15
✎
11:44
|
добавь в исходный XML пространство имен, сделай по получившемуся XML схему, поправь её до правильного состояние указанием примитивных типов и минимального и максимального количества повторений элементов. Для загрузки используй фабрику XDTO. Ну, и для выгрузки тоже
|
|||
3
Fragster
гуру
19.10.15
✎
11:45
|
>сделай по получившемуся XML схему
например с помощью XMLpad |
|||
4
antihacker
19.10.15
✎
11:47
|
Я отправляю из мобильного приложения. Там нет XDTO. Да и зачем так усложнять ? Рродительский я же ведь читаю. Нельзя далее как то дочерние прочесть ?
|
|||
5
antihacker
19.10.15
✎
11:55
|
А если вот так, то есть возможность прочесть ?
<?xml version="1.0" encoding="UTF-8"?> <Orders> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="9659bcc2-71a0-11e5-a25b-8056f29d9214" WareHouseGuid="1712181c-90cb-11e0-9cb8-f6f50ef82aee" CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220"> <Food> <FoodGUID>Печенье Алматинское "CACAO cookies" 0,400 гр.</FoodGUID> <FoodCount>45.00</FoodCount> </Food> <Food> <FoodGUID>Салфетка Карина 50 шт 1112222222222222222222</FoodGUID> <FoodCount>25.00</FoodCount> </Food> </REQUISITES> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="05bcd74c-7321-11e5-a25b-8056f29d9214" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" CustomerGuid="29ea747e-1096-11e4-828a-c04a00025220"> <Food> <FoodGUID>Печенье Алматинское "CACAO cookies" 0,400 гр.</FoodGUID> <FoodCount>1*225.00</FoodCount> </Food> <Food> <FoodGUID>Салфетка Карина 50 шт 1112222222222222222222</FoodGUID> <FoodCount>7*825.00</FoodCount> </Food> </REQUISITES> <REQUISITES MPGuid="7e4d78c3-8274-4776-9996-ec4088853f8b" OrderGuid="49258284-7322-11e5-a25b-8056f29d9214" WareHouseGuid="e6aa71aa-7442-11e3-b74d-d43d7e9bfcb0" CustomerGuid="4e8273f9-e877-11e1-a6eb-f6f50ef82aee"/> </Orders> |
|||
6
Fedor-1971
19.10.15
✎
12:30
|
(0) поищи про запросы в XML:
мЗапрос="/DailyExRates/Currency"; мКурсы=мДокументДОМ.СоздатьВыражениеXPath(мЗапрос,мРазыменовательПИ); там есть возможность перебирать атрибуты ветки через Для каждого ... |
|||
7
antihacker
19.10.15
✎
12:48
|
Спращиваю зачем усложнять ? Можно же по проще
Вот так работает. //***********Общие реквизиты*************************** Если ЧтениеXMl.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXMl.Имя="REQUISITES" Тогда OrderGuid =ЧтениеXMl.ПолучитьАтрибут("OrderGuid"); //------------Добавляем запись в регистр---------- НовыйЗаказ=РегистрыСведений.ЗаказыОтМП.СоздатьМенеджерЗаписи(); //Дата поступление заказа НовыйЗаказ.OrderDate=ТекущаяДата(); //GUID МП НовыйЗаказ.MPGUID=СокрЛП(ЧтениеXMl.ПолучитьАтрибут("MPGuid")); //GUID заказа НовыйЗаказ.OrderGUID=OrderGUID; //GUID склада НовыйЗаказ.WareHouseGUID=ЧтениеXMl.ПолучитьАтрибут("WareHouseGuid"); //GUID Контрагента НовыйЗаказ.CustomerGUID=ЧтениеXMl.ПолучитьАтрибут("CustomerGuid"); НовыйЗаказ.Записать(); КонецЕсли; Если ЧтениеXMl.Имя="Food" Тогда //------------Добавляем запись в регистр---------- НоваяНоменклатура=РегистрыСведений.НоменклатурыЗаказовОтМП.СоздатьМенеджерЗаписи(); //Дата поступление заказа НоваяНоменклатура.OrderDate=ТекущаяДата(); //GUID заказа НоваяНоменклатура.OrderGUID=OrderGUID; //GUID склада НоваяНоменклатура.FoodGUID=ЧтениеXMl.ПолучитьАтрибут("FoodGUID"); НоваяНоменклатура.FoodGUID=ЧтениеXMl.ПолучитьАтрибут("FoodCount"); НоваяНоменклатура.Записать(); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |