ЭДО

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ЭДО

Сообщение Дед Пахом »

Игорь Столяров писал(а): 14 Февраль 2023, 11:13 Это тот замечательный частный случай, когда тег 'Account'
А общий случай приведён в загрузке PaymentQ.
С уважением, ДП
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 233
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

ЭДО

Сообщение SergioRaguzini »

finsoftrz писал(а): 14 Февраль 2023, 11:15 И как с переменными именами тэгов выкручиваешься?
Во входящих документах ЕГАИС нет переменных имен тегов... Прошу поянить что имелось ввиду
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

SergioRaguzini писал(а): 14 Февраль 2023, 19:56 Во входящих документах ЕГАИС нет переменных имен тегов
Мы воевали все семьдесят лет,
Мы считали, что жизнь — это бой.
Но, по новым данным разведки,
Мы воевали сами с собой.
(С) Аквариум :idied:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 233
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

ЭДО

Сообщение SergioRaguzini »

finsoftrz писал(а): 14 Февраль 2023, 11:15 И как с переменными именами тэгов выкручиваешься?
Может не понял вопроса... в xFiles нет проблем с парсингом xml в т.ч. вложенных структур
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ЭДО

Сообщение finsoftrz »

SergioRaguzini писал(а): 14 Февраль 2023, 19:56
finsoftrz писал(а): 14 Февраль 2023, 11:15 И как с переменными именами тэгов выкручиваешься?
Во входящих документах ЕГАИС нет переменных имен тегов... Прошу поянить что имелось ввиду
Сергей, ошибаешься. Скорее всего мало поставщиков, не сталкивался просто. У нас тоже первое время не было, но начиная, если память не изменяет, с 2 или 3 версии, началось. Вначале тоже по фиксированным тегам работали, как в доке, потом приделал возможность редактирования накладной перед загрузкой, думал, разовые случаи. Потом еще чаще пошло и пришлось переходить на xpath. Хорошо, что сразу через генерацию скриптов было сделано, загуглил примеры на vbscript и где-то в пределах полдня порешал. Связано это с тем, что программисты у отдельных поставщиков использовали таким способом версионирование. То есть у них префиксы в тегах разные, в зависимости от номера версии егаис. Например, wb:... для первой, wb3:... для третьей. Сейчас актуальная 4 версия, вот и считаем. Егаис пространство имен понимает и пропускает. В основном, большинство придерживаются стандартных тэгов. На момент перехода на xpath 3 или 4 поставщика с переменными слали, по моему, москвичи. Отказываться принимать от них бухло не вариант. Соответствие тэгов пространству имен указывается в заголовке xml, по нему парсер и определяет, что есть что. Знаю одного программиста, который изощрялся решить проблему с помощью таблицы соответствия, это костыль, мы не знаем, кому как взбредет в голову назвать тэг. Методы работы xpath похожи на методы работу со стандартными тегами, код по размеру получается примерно одинаковый (на vbscript).
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ЭДО

Сообщение finsoftrz »

Михаил чуть выше написал, что xfiles не поддерживают xpath.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 233
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

ЭДО

Сообщение SergioRaguzini »

finsoftrz писал(а): 14 Февраль 2023, 20:30 у них префиксы в тегах разные, в зависимости от номера версии егаис. Например, wb:... для первой, wb3:... для третьей
пока такого не встечал, но ситуация, действительно нехорошая :?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ЭДО

Сообщение Дед Пахом »

Мне немного и достаточно давно приходилось иметь дело с xFiles, насколько помню, ему на пространства имён глубоко плевать, он же разбирает построчно, видит <Account>, значит имя "Account", а не "wb:Account".
С уважением, ДП
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 233
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

ЭДО

Сообщение SergioRaguzini »

Дед Пахом писал(а): 14 Февраль 2023, 21:00 т <Account>, значит имя "Account", а не "wb:Account".
Посмотрел образцы xml входящих ТТН поставщиков - именно так!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

В штатном классе Clarion реализована работа с пространством имён XML (NameSpace).
xPath - нет, это иное чем DOM.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ЭДО

Сообщение finsoftrz »

Дед Пахом писал(а): 14 Февраль 2023, 21:00 Мне немного и достаточно давно приходилось иметь дело с xFiles, насколько помню, ему на пространства имён глубоко плевать, он же разбирает построчно, видит <Account>, значит имя "Account", а не "wb:Account".
Нет, в xml будет тэг <wb:Account>. А может быть и <ns:Account> и это совсем другой тэг. Для примера. В заголовке прописывается, что wb это то-то, а ns это то-то. Я могу поточнее xml посмотреть и соответствующий код методов xpath для его разбора, если нужно. А то давно делалось, я на память пишу.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ЭДО

Сообщение finsoftrz »

Игорь Столяров писал(а): 14 Февраль 2023, 21:36 В штатном классе Clarion реализована работа с пространством имён XML (NameSpace).
xPath - нет, это иное чем DOM.
Может, я заблуждаюсь. Есть упрощенный sax parser, который просто работает со строкой xml. А есть DOM, который строку xml загоняет в древовидную структуру, а затем уже с ней работает. Xpath работает с DOM, методы доступа несколько отличаются по синтаксису, что позволяет обучить парсер, в каких тэгах что лежит и при разборе оперировать ими. У меня такая картинка сложилась, в теорию xml я не углублялся.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

ЭДО

Сообщение Игорь Столяров »

finsoftrz писал(а): 14 Февраль 2023, 20:30 использовали таким способом версионирование
Примеров особенностей национального программирования - масса.
Надеюсь, что в аду приготовлен отдельный котёл для тех, кто в ЦБ РФ делает XML c одинаковыми именами тега и его аттрибута: :evil:

Код: Выделить всё

<biks version="14.02.2023">
<bik bik="041280103" ks="40116810100000010010" name="УФК по Астраханской области" namemini="УФК по Астраханской области" index="414056" city="Астрахань" address="ул Латышева, 6 Г" phone="" okato="12" okpo="" regnum="" srok="" dateadd="2010-06-08" datechange=""/>
<bik bik="040147000" ks="" name="РКЦ БИЙСК" namemini="РКЦ БИЙСК" index="659300" city="Бийск" address="ул. Владимира Ленина, 127" phone="" okato="1" okpo="" regnum="" srok="" dateadd="1994-01-20" datechange=""/>
<bik bik="046577906" ks="30101810100000000906" name="УРАЛЬСКИЙ ФИЛИАЛ АО "РАЙФФАЙЗЕНБАНК"" namemini="УРАЛЬСКИЙ ФИЛИАЛ АО "РАЙФФАЙЗЕНБАНК"" index="620075" city="Екатеринбург" address="ул Красноармейская, 10" 
....
</biks>
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ЭДО

Сообщение finsoftrz »

Котёл ещё можно для тех, кто в названиях отдельные символы юникода впихивает.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

ЭДО

Сообщение Admin »

Игорь Столяров писал(а): 15 Февраль 2023, 8:53 XML c одинаковыми именами тега и его аттрибута
W3C не запрещает
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить