|
Чтение ХML | ☑ | ||
---|---|---|---|---|
0
Pasha12312
21.02.13
✎
13:15
|
Здравствуйте!Учусь делать выгрузку-загрузку документа в файл ХML.
Сделал выгрузку.Получилось вот что: <СчетаНаОплату> <Документ> <Дата>2011-04-14T12:00:00</Дата> <Организация>Пілот ТД</Организация> <Контрагент>НДІ Автоматики</Контрагент> <Склад>Головний склад</Склад> <СуммаВключаетНДС>false</СуммаВключаетНДС> <СуммаДОкумента>120000</СуммаДОкумента> <УчитыватьНДС>true</УчитыватьНДС> <Табличная_Часть_Товары> <Номенклатура>Кондиціонер 12М</Номенклатура> <Цена>1500</Цена> <Сумма>90000</Сумма> <СтавкаНДС>НДС20</СтавкаНДС> <СуммаНДС>18000</СуммаНДС> <Количество>60</Количество> <СуммаБезСкидки>90000</СуммаБезСкидки> <СуммаСкидки>0</СуммаСкидки> </Табличная_Часть_Товары> Проблема возникла при чтении. Подскажите , пожалуйста , последовательность обхода файла ХML. Начал вот так: ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл("C:\Users\user\Desktop\xml\schet.xml"); Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.Имя = "СчетаНаОплату" Тогда НовыйДокумент = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); Если ЧтениеXML.Имя = "Документ" Тогда Если ЧтениеXML.Имя="Дата" Тогда НовыйДокумент.Дата = ЧтениеXML.Значение; ........ что -то я запутался с этим "Если")) может кто подскажет . |
|||
1
Maxus43
21.02.13
✎
13:22
|
ЧтениеXML - построчное считывание, как в файе так и будет последовательность
|
|||
2
alexei366
21.02.13
✎
13:24
|
Лучше попробуй через ПостроительDOM, ДокументDOM
|
|||
3
alexei366
21.02.13
✎
13:25
|
Или вообще через ПакетXDTO
|
|||
4
Trier
21.02.13
✎
13:32
|
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если ЧтениеXML.Прочитать() И ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда ИмяПараметра = ЧтениеXML.Имя; Значениепараметра = ЧтениеXML.Значение; создаешь такую структуру например и потом из нее пишешь куда тебе надо |
|||
5
Pasha12312
21.02.13
✎
13:47
|
(4)я не могу разобраться что к чему..
//тут я начинаю чтение Пока ЧтениеXML.Прочитать() Цикл //определяю началоЕлемента (это <СчетаНаОплату> я так понимаю) Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда //теперь мне надо выйти на <Документ> так? Если ЧтениеXML.Имя = "Документ" Тогда //тут создать документ НовыйДокумент = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); //как дальше писать? |
|||
6
alexei366
21.02.13
✎
13:56
|
Не хочешь плодить условия, делай через процедуры. К примеру:
Процедура Основная(ЧтениеXML) Пока ЧтениеXML.Прочитать() Цикл //определяю началоЕлемента (это <СчетаНаОплату> я так понимаю) Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда //теперь мне надо выйти на <Документ> так? Если ЧтениеXML.Имя = "Документ" Тогда ОбработатьДокумент(ЧтениеXML) ... КонецПроцедуры Процедура ОбработатьДокумент(ЧтениеXML) НовыйДокумент = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); Пока ЧтениеXML.Прочитать() Цикл //Здеся крутишься пока не достигнишь конца элемента Документ КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |