|
ЧтениеXML - как прочитать только нужные узлы? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
05.04.19
✎
07:05
|
1С рекомендует читать не весь файл в объект XDTO, а постепенно
ок, в файле имеем список <patients> <patient... <patient... <patient... <patient... <patient... как прочитать только узлы patient? если Пропустить() - то не догоняю как его в цикле использовать Пока ЧтениеХМЛ.Прочитать() Цикл Если ЧтениеХМЛ.ЛокальноеИмя = "patient" Тогда Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,лТип); ЧтениеХМЛ.Пропустить(); КонецЕсли; КонецЦикла; так перескакивает через одного |
|||
1
RomaH
naïve
05.04.19
✎
07:18
|
ЧтениеХМЛ.Пропустить(); - встает на конец элемента patient
а Прочитать() сразу за пропустить - переходит на третий элемент списка пропуская второй - т.е. с конца первого на начало третьего |
|||
2
RomaH
naïve
05.04.19
✎
07:43
|
чем дальше в лес тем гуще партизаны
Пока ЧтениеХМЛ.Прочитать() Цикл Если ЧтениеХМЛ.ЛокальноеИмя = "patient" И ЧтениеХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,лТип); Сообщить(Данные.surname); КонецЕсли; КонецЦикла; читает через одного 1 - 3 - 5 и так до конца |
|||
3
RomaH
naïve
05.04.19
✎
07:46
|
не понял
Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,лТип); делает с ЧтениеХМЛ тоже что и Прочитать() |
|||
4
RomaH
naïve
05.04.19
✎
07:54
|
как правильно написать тоже самое?
ВсегоПациентов = 0; Пока ЧтениеХМЛ.Прочитать() Цикл Пока ЧтениеХМЛ.ЛокальноеИмя = "patient" И ЧтениеХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента И ВсегоПациентов < 2000 Цикл ВсегоПациентов = ВсегоПациентов + 1; Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,лТип); Сообщить(Данные.surname); КонецЦикла; КонецЦикла; |
|||
5
RomaH
naïve
05.04.19
✎
07:54
|
(4) этот код делает то что мне надо - создает объекты XDTO на для каждого элемента списка
|
|||
6
Cyberhawk
05.04.19
✎
08:31
|
(4) от (2) ничем вроде не отличается. Походу у тебя кэш старого модуля обработки использовался, вот ты и подумал, что неправильно работает
|
|||
7
Василий Алибабаевич
05.04.19
✎
09:01
|
(3) 100 пудов. Читает текущий и переходит к следующему. Различается только интерпретация прочитанного.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |