22.09.2016

1С чтение xml с помощью XDTO

Чтобы разобрать файл 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:

лЧтение = Новый ЧтениеXML;
лЧтение.ОткрытьФайл(лФайл.ПолноеИмя);//лФайл - это файл xml
лФабрика = Новый ФабрикаXDTO;
лОбъектXDTO = лФабрика.ПрочитатьXML(лЧтение);
Для Каждого PriceList Из лОбъектXDTO.PricesList.PriceList Цикл
лКодПрайсЛиста = PriceList.CODE;
лЦена = PriceList.PRICE;
КонецЦикла;
Ну тут и комментарии, думаю, излишни, и так все ясно.

Комментариев нет:

Отправить комментарий