Чтобы разобрать файл xml можно воспользоваться объектом ФабрикаXDTO. Хоть он и кажется чем-то непонятным и странным, однако ж на деле этот вариант гораздо проще и быстрее, чем возиться с ЧтениеXML и разбирать потом его с помощью поисков по строке.
Итак, для начала немного теории, совсем чуть-чуть, буквально 2 предложения. XDTO - это такой 1с-ный ответ SOAP-пакетам, импортозамещающий элемент из нормального программирования. И один из вариантов использования заключается в возможности обращаться с конкретными xml-файлами как с объектами, у которых есть поля и свойства, и которые можно записывать(при небольшой оговорке) и считывать.
Допустим у нас есть простейший xml-файл:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<PricesList>
<PriceList CODE="КЗ000005152" PRICE="88.64406"/>
<PriceList CODE="КЗ000005153" PRICE="61.52542"/>
</PricesList>
</ROOT>
Т.е. тут у нас список прайслистов в объекте PricesList, где каждый отдельный прайслист содержит два свойства: код и цену.
Следующий листинг поможет разобрать xml:
Итак, для начала немного теории, совсем чуть-чуть, буквально 2 предложения. XDTO - это такой 1с-ный ответ SOAP-пакетам, импортозамещающий элемент из нормального программирования. И один из вариантов использования заключается в возможности обращаться с конкретными xml-файлами как с объектами, у которых есть поля и свойства, и которые можно записывать(при небольшой оговорке) и считывать.
Допустим у нас есть простейший xml-файл:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<PricesList>
<PriceList CODE="КЗ000005152" PRICE="88.64406"/>
<PriceList CODE="КЗ000005153" PRICE="61.52542"/>
</PricesList>
</ROOT>
Т.е. тут у нас список прайслистов в объекте PricesList, где каждый отдельный прайслист содержит два свойства: код и цену.
Следующий листинг поможет разобрать xml:
лЧтение = Новый ЧтениеXML;
лЧтение.ОткрытьФайл(лФайл.ПолноеИмя);//лФайл - это файл xml
лФабрика = Новый ФабрикаXDTO;
лОбъектXDTO = лФабрика.ПрочитатьXML(лЧтение);
Для Каждого PriceList Из лОбъектXDTO.PricesList.PriceList Цикл
лКодПрайсЛиста = PriceList.CODE;
лЦена = PriceList.PRICE;
КонецЦикла;Ну тут и комментарии, думаю, излишни, и так все ясно.
Комментариев нет:
Отправить комментарий