Всем добра.
Есть такой вот ответ от сервиса:
<?xml version="1.0" encoding="windows-1251" ?>
- <reply>
<type>users</type>
- <users>
- <user id="1505">
<group>1</group>
<full_name>Абдуллаева Ирина Николаевна</full_name>
<family>Абдуллаева</family>
<name>Ирина</name>
<fname>Николаевна</fname>
- <params>
<param id="acl">4</param>
<param id="acl_name">Всегда</param>
<param id="activate">10.07.2017</param>
<param id="deactivate">10.07.2020</param>
<param id="apb_check">1</param>
<param id="position">обработчик птицы</param>
<param id="pos_code">59</param>
<param id="dept_id">10</param>
<param id="dept_name">Птицеубойный цех</param>
<param id="ta_attr">0</param>
<param id="sg_id">13</param>
<param id="sg_name">Птицеубойный</param>
<param id="sch_id">1</param>
<param id="sch_name">Стандартное</param>
</params>
</user>
Делаю вот такое:
ЧтениеХМЛ = Новый ЧтениеXML;
ЧтениеХМЛ.ОткрытьФайл("C:\Temp\_users.xml");
РезРазборки = Новый Массив;
ПодрХДТО = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ);
Если ТипЗнч(ПодрХДТО.users.user) <> Тип("СписокXDTO") Тогда
спСотрХДТО = Новый Массив;
спСотрХДТО.Добавить(ПодрХДТО.users.user);
Иначе
спСотрХДТО = ПодрХДТО.users.user
КонецЕсли;
тс = 0;
Для тс = 0 По спСотрХДТО.Количество()-1 Цикл
После ФабрикиXDTO, в СпискеXDTO, получаемого из элемента "params.param" доступны только значения атрибута "id" элемента/элементов "params.param" (acl, acl_name, activate,...). А хочется получить значения самих элементов "param" (4, Всегда, 10.07.2017,...).
Как это сделать? Почему Фабрика не отбирает эти значения?
Или нужен другой программный код?
Или нужно "скармливать" Фабрике схему xml-документа (.xms)?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший