|
Чтение XML с помощью ФабрикаXDTO |
☑ |
0
Help1с
01.08.19
✎
09:24
|
Всем привет.
Подскажите как прочитать значение у элемента subjectRF 76?
<ns2:subjectRF dCode="RF7" dRn="1" rRn="1">76</ns2:subjectRF>
Делаю так:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(вхТекстXML);
Фабрика = Новый ФабрикаXDTO;
СтруктураДанных = Фабрика.ПрочитатьXML(ЧтениеXML);
СтруктураДанных.subjectRF - ОбъектXDTO, у которого есть атрибуты dCode="SubektRF7" dRn="1" rRn="1", но нет значения "76"
Как прочитать значение 76?
Спасибо.
|
|
1
mikecool
01.08.19
✎
09:25
|
попробуй через __content
|
|
2
Help1с
01.08.19
✎
09:26
|
(1) попробовал. не видит. в отладчике смотрел. сколько символов "_"? пробовал от одного до трех
|
|
3
mikecool
01.08.19
✎
09:28
|
(2) два, но не везде прокатывает, в схеме должен быть описан этот контент
|
|
4
Help1с
01.08.19
✎
09:34
|
(3) а если на лету, без схемы? я так понимаю что никак? надо другой способ искать, не фабрикой?
|
|
5
Help1с
01.08.19
✎
11:37
|
Каким способом можно прочитать?
|
|
6
Help1с
06.08.19
✎
14:42
|
на всякий случай подниму )
|
|
7
Help1с
06.08.19
✎
15:21
|
всем спасибо. :)
нашел ответ. вот так можно прочитать значение
СтруктураДанных.subjectRF.Последовательность().ПолучитьТекст(0)
|
|
8
mikecool
06.08.19
✎
15:26
|
(7) кстати да, теперь вспомнил - сам как то искал )))
какой то читерский способ, поскольку в типе объекта нет для этого значения поля
|
|
9
Help1с
06.08.19
✎
16:19
|
как изменить значение у свойства? пытаюсь сделать вот так
Для каждого ТекСвойство Из СтруктураДанных.Свойства() Цикл
Если СокрЛП(СтруктураДанных.Получить(ТекСвойство)) = "ОбъектXDTO" Тогда
Попытка
ТекстовоеЗначение = СтруктураДанных.Получить(ТекСвойство).Последовательность().ПолучитьТекст(0);
СтруктураДанных.Сбросить(ТекСвойство);
СтруктураДанных.Добавить(СокрЛП(ТекСвойство), ТекстовоеЗначение);
Получилось = Истина;
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
вываливается ошибка СтруктураДанных.Добавить(СокрЛП(ТекСвойство), ТекстовоеЗначение);
|
|
10
Help1с
06.08.19
✎
16:24
|
+ Ошибка при вызове метода контекста (Добавить): Несоответствие типов (параметр номер '2')
|
|
11
RomanYS
06.08.19
✎
16:27
|
(10) Синтаксис:
Добавить(<Свойство>, <Элемент>)
Параметры:
<Элемент> (обязательный)
Тип: ЗначениеXDTO; ОбъектXDTO; Неопределено.
Элемент данных XDTO, добавляемый в последовательность.
|
|
12
Help1с
06.08.19
✎
16:30
|
(11) как на лету сделать из текста ЗначениеXDTO;
и как я понял у этого свойства тип остается прежний "ОбектXDTO", а нужен текст...
|
|