После открытия формы, выбираем xml файл и начинаем на него смотреть, с разных сторон.
Мой файл выглядит примерно так:
Нагляднее всего будет выглядеть структура:
Но структура имеет массу неприятных ограничений на имена свойств. А вот XML этих неприятностей лищён. Для большей совместимости с исходным форматом данных можно испольщовать соответствие:
Это конечно более громоздко, по сравнению со структурой, но позволяет работать с «внезапными» XML файлами. Составители которых не знают о наших проблемах, вызываемых именем тега начинающегося с цифры, или содержащего пробел.
Жалко что листинг не выложили, а то не все можно скачать…
а атрибуты как в соответствие записываются? тут только содержимое нодов на приведенном скрине
+(2) ЗагрузитьСтрокуXMLВДеревоЗначений() из типовых на первый взгляд кошернее
Gjrf(2) vano-ekt, Пока никак. Будет задача — будет модификация.
…а ещё можно выложить чтение xml как таковое, обалдеть какое сложное действие.
Докатились. Считывание xml в соответствия, структуры и иные коллекции уже заслуживает отдельной публикации.
Автор, вы, надеюсь, хотя бы используете некое красивое преобразование, или тупо циклом?
А чем XDTO не угодил? Вроде все тоже делает, только встроенными средствами. С лета интенсивно пользую для разбора xml-файлов. Даже просто если нужно использовать большую структуру, то чтобы не захламлять код многочисленными .Вставить() сделал справочник ШаблоныXML и описываю такие структуры в XML.
(6) oleg_km, в данном случае мешает отсутствие xsd. Даже просто какого-то описания формата входящего файла нет. Поэтому, вместо описания правил преобразования, и дальнейшего использования полученной структуры — просто разбирается произвольный файл в произвольну структуру.
Конечно, если формат входного файла известен, то XDTO будет в разы быстрее его разбирать.
(7) mcd2003, xsd можно получить из xml, например через онлайн конверторы. Этот xsd нужно подредактировать (добавить targetNamespace=»http://www.nazvanie» после elementFormDefault=»qualified») и 1с сделает из него пакет XDTO
(6) oleg_km, согласен с mcd2003, нормальной работе мешает отсутствие схемы.
Например, делаю обмен с бюро кредитных историй: у одного бюро xml запроса строится по двум схемам — делаю без особых проблем (хотя и они были) через xdto. Но при выгрузке итогового xml надо убирать все неймспейсы и оставить только названия тегов — требование бюро. Приходится убирать их вручную через СтрЗаменить. В ответ приходит xml также слепленая из двух схем, но тоже без неймспейсов — в итоге с помощью xdto ее уже не распарсить — тут и пригодится такая обработка.
Во втором бюро вообще нет схемы xml, а все теги называются <s>, <c>, <a> и <n> — тут тоже пришлось писать свой парсер в структуру.
Так что все зависит от ситуации, и данное решение тоже имеет место…