А общий случай приведён в загрузке PaymentQ.Игорь Столяров писал(а): ↑14 Февраль 2023, 11:13 Это тот замечательный частный случай, когда тег 'Account'
ЭДО
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
ЭДО
С уважением, ДП
- SergioRaguzini
- Старожил
- Сообщения: 236
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
ЭДО
Мы воевали все семьдесят лет,SergioRaguzini писал(а): ↑14 Февраль 2023, 19:56 Во входящих документах ЕГАИС нет переменных имен тегов
Мы считали, что жизнь — это бой.
Но, по новым данным разведки,
Мы воевали сами с собой.
(С) Аквариум
За теми кто отстал - не возвращаться. (С) Кодекс
- SergioRaguzini
- Старожил
- Сообщения: 236
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
ЭДО
Сергей, ошибаешься. Скорее всего мало поставщиков, не сталкивался просто. У нас тоже первое время не было, но начиная, если память не изменяет, с 2 или 3 версии, началось. Вначале тоже по фиксированным тегам работали, как в доке, потом приделал возможность редактирования накладной перед загрузкой, думал, разовые случаи. Потом еще чаще пошло и пришлось переходить на xpath. Хорошо, что сразу через генерацию скриптов было сделано, загуглил примеры на vbscript и где-то в пределах полдня порешал. Связано это с тем, что программисты у отдельных поставщиков использовали таким способом версионирование. То есть у них префиксы в тегах разные, в зависимости от номера версии егаис. Например, wb:... для первой, wb3:... для третьей. Сейчас актуальная 4 версия, вот и считаем. Егаис пространство имен понимает и пропускает. В основном, большинство придерживаются стандартных тэгов. На момент перехода на xpath 3 или 4 поставщика с переменными слали, по моему, москвичи. Отказываться принимать от них бухло не вариант. Соответствие тэгов пространству имен указывается в заголовке xml, по нему парсер и определяет, что есть что. Знаю одного программиста, который изощрялся решить проблему с помощью таблицы соответствия, это костыль, мы не знаем, кому как взбредет в голову назвать тэг. Методы работы xpath похожи на методы работу со стандартными тегами, код по размеру получается примерно одинаковый (на vbscript).SergioRaguzini писал(а): ↑14 Февраль 2023, 19:56Во входящих документах ЕГАИС нет переменных имен тегов... Прошу поянить что имелось ввиду
C6/C11, ШВС, tps/btrieve.
- SergioRaguzini
- Старожил
- Сообщения: 236
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
ЭДО
Мне немного и достаточно давно приходилось иметь дело с xFiles, насколько помню, ему на пространства имён глубоко плевать, он же разбирает построчно, видит <Account>, значит имя "Account", а не "wb:Account".
С уважением, ДП
- SergioRaguzini
- Старожил
- Сообщения: 236
- Зарегистрирован: 08 Декабрь 2009, 19:16
- Откуда: Краснодарский край
- Благодарил (а): 6 раз
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
ЭДО
В штатном классе Clarion реализована работа с пространством имён XML (NameSpace).
xPath - нет, это иное чем DOM.
xPath - нет, это иное чем DOM.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
ЭДО
Нет, в xml будет тэг <wb:Account>. А может быть и <ns:Account> и это совсем другой тэг. Для примера. В заголовке прописывается, что wb это то-то, а ns это то-то. Я могу поточнее xml посмотреть и соответствующий код методов xpath для его разбора, если нужно. А то давно делалось, я на память пишу.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4655
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
ЭДО
Может, я заблуждаюсь. Есть упрощенный sax parser, который просто работает со строкой xml. А есть DOM, который строку xml загоняет в древовидную структуру, а затем уже с ней работает. Xpath работает с DOM, методы доступа несколько отличаются по синтаксису, что позволяет обучить парсер, в каких тэгах что лежит и при разборе оперировать ими. У меня такая картинка сложилась, в теорию xml я не углублялся.Игорь Столяров писал(а): ↑14 Февраль 2023, 21:36 В штатном классе Clarion реализована работа с пространством имён XML (NameSpace).
xPath - нет, это иное чем DOM.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7404
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
ЭДО
Примеров особенностей национального программирования - масса.
Надеюсь, что в аду приготовлен отдельный котёл для тех, кто в ЦБ РФ делает XML c одинаковыми именами тега и его аттрибута:
Код: Выделить всё
<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>
За теми кто отстал - не возвращаться. (С) Кодекс