Имя: Пароль:
1C
1С v8
Помогите прочитать xml
0 Повелитель
 
12.05.17
14:12
Есть вот такая строка:

<prices><price type="RRP" currencyId="KZT">109990</price><price type="Дилерская цена" currencyId="KZT">85117</price></prices>

Код в 1с такой:

Чт = Новый ЧтениеXML;
Чт.ОткрытьФайл(ИмяФайла);    

Пока Чт.Прочитать() Цикл

Если Чт.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяРеквизта = Чт.Имя;

Если ИмяРеквизта = "price" Тогда
    Сообщить(Чт.ЗначениеАтрибута(0));
    Сообщить(Чт.ЗначениеАтрибута(1));
КонецЕсли;

КонецЕсли;

КонецЦикла;

В сообщении выдает:
RRP
KZT
Дилерская цена
KZT

Как получить цену 85117?
1 Повелитель
 
12.05.17
14:13
(0) Так нагляднее xml
<prices>
<price type="RRP" currencyId="KZT">109990</price>
<price type="Дилерская цена" currencyId="KZT">85117</price>
</prices>
2 dezss
 
12.05.17
14:21
чт.Значение
3 Повелитель
 
12.05.17
14:26
(2) Чт.Значение выдает ""
4 arsik
 
гуру
12.05.17
14:33
(3) Ну посмотри в отладчике все свойства ЧТ
5 Повелитель
 
12.05.17
14:40
(4) Посмотрел. Не нашел. Поэтому написал сюда.
6 dezss
 
12.05.17
14:41
Если Чт.ТипУзла = ТипУзлаXML.Текст Тогда
7 dezss
 
12.05.17
14:42
И вообще, после начала элемента, надо бы отдельный цикл до конца элемента.
8 dezss
 
12.05.17
14:44
(5) ты смотрел не туда...надо было смотреть не только внутри твоего Если, а внутри всего цикла.
9 youalex
 
12.05.17
14:44
1)дойди до .ТипУзла = ТипУзлаXML.Текст

2) Используй DOM, если файл не оч. большой
10 Повелитель
 
12.05.17
14:47
Понял, спасибо. Сейчас проверю.
11 Повелитель
 
12.05.17
14:50
Все получилось через Чт.ТипУзла = ТипУзлаXML.Текс спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший