АктСвер 3.01 (Чтение XML)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01 (Чтение XML)
Ни у кого нет кода для разбора акта сверки взаиморасчетов с помощью iQXML ?
Что то мозгов не хватает его разобрать.
Или чем то другим. Или преобразование этого XML в XLS для удобства чтения.
А то присылают это, и нужно бухам глазками читать.
Что то мозгов не хватает его разобрать.
Или чем то другим. Или преобразование этого XML в XLS для удобства чтения.
А то присылают это, и нужно бухам глазками читать.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Или напомните кусочек кода для ручного разбора XML т.к. повторюсь, iQXML не устраивает.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
АктСвер 3.01
iQXML сдох. Года 3-4 назад все парсеры переписали на штатный разбор Clarion по
примеру Юрия (ещё раз спасибо !): viewtopic.php?f=1&t=3390
Что такое "АктСвер 3.01" - не знаю, но если дадите описание, то посмотрю и скажу.
За теми кто отстал - не возвращаться. (С) Кодекс
АктСвер 3.01
Поищи в этом форуме по слову FillDomQueue.
Рассказывал, как это делается встроенными классами Кларион, начиная с cw6.
Рассказывал, как это делается встроенными классами Кларион, начиная с cw6.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
АктСвер 3.01
Вот Ваше описание. Это же как настольная библия (или прикроватная камасутра) ...
- Вложения
-
- Clarion XML.txt
- (2.6 КБ) 208 скачиваний
За теми кто отстал - не возвращаться. (С) Кодекс
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Спасибо. Завтра разберу.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Не могу найти исходник FillDomQueue. Киньте кто ни будь сюда или в личку.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
АктСвер 3.01
Как-то Вы сразу решили начать с переписывания всего ...
А этот исходник вообще существует ? Реализация работы с XML в Clarion выполнена
в библиотеках Clacpxml.dll и Claxmlty.dll - они добавляются в проект. И это всё ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Я не в теме.
FillDomQueue генерирует дерево по которому потом в коде бежим в цикле.
FillDomQueue я так понял написал Юрий Философов но ссылка на Тактик Диполь не работает.
FillDomQueue генерирует дерево по которому потом в коде бежим в цикле.
FillDomQueue я так понял написал Юрий Философов но ссылка на Тактик Диполь не работает.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
АктСвер 3.01
Нет. Метод FillDomQueue описан в cpxml.inc / clw которые находятся в папке LibSrc Clarion.
Есть штатный PDF с описанием, он полезен для понимания как это вообще работает.
- Вложения
-
- clarionxmlsupport.pdf
- (424.05 КБ) 181 скачивание
За теми кто отстал - не возвращаться. (С) Кодекс
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Я правильно понимаю что XML с русскими тегами не читаются?
Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?>
<Файл Формат="АктСвер" ВерсияФормата="3.01" Имя="ON_ACCOUNTS___20201123_f36a5aa6-5cb1-4c2c-94ae-31f1df41bf18">
...
</Файл>
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
АктСвер 3.01
1. В Кларионе есть шаблон ViewXML. Если его вызвать вызовом кнопки где-то в уголке, то всё подключится на автомате.
Обычно я так и делаю
2. Шаблон загружает файл в очередь, используя FillDomQueue, после чего показывает XML в виде очереди.
Кстати, полезно посмотреть загруженный XML-файл, сразу будет видно, где что лежит.
3. Если при загрузке происходит авария, то XML-файл не загрузится, надо менять кодовую таблицу.
Вот рабочий фрагмент ( документ лежит в Блоб-поле БД )
Документ загружается в память, в начале документа ищем "WINDOWS-1251" ( такие у меня документы ), заменяем на "UTF-8" и перекодируем текс, а потом загружаем через XMLStringToDOM.
Если документ лежит не в Блобе, заменяем LoadFromBlob на LoadFromFile.
4. Если ViewXML работает, но показывает кракозябли - это нормально, данные надо будет перекодировать из UTF-8 в Win1251.
5. Мой адрес на tacis-dipol.ru давно ликвидирован.
Обычно я так и делаю
2. Шаблон загружает файл в очередь, используя FillDomQueue, после чего показывает XML в виде очереди.
Кстати, полезно посмотреть загруженный XML-файл, сразу будет видно, где что лежит.
3. Если при загрузке происходит авария, то XML-файл не загрузится, надо менять кодовую таблицу.
Вот рабочий фрагмент ( документ лежит в Блоб-поле БД )
Код: Выделить всё
LoadXMLDoc Routine ! Разборка XML
Data
XMLText Cstr
WinPos Long
Code
XMLText.LoadFromBlob(BlobField)
WinPos=Instring('"WINDOWS-1251"',XMLText.S[1:60],1,1)
If WinPos
XMLText.S[WinPos : WinPos+13]='"UTF-8"'
XMLText.ToUtf8()
End
xmlDoc &= XMLStringToDOM(XMLText.S)
If XMLDoc &= Null
If BlobToFile(BlobField, 'Error.XML') .
Return(1)
End
Exit
Если документ лежит не в Блобе, заменяем LoadFromBlob на LoadFromFile.
4. Если ViewXML работает, но показывает кракозябли - это нормально, данные надо будет перекодировать из UTF-8 в Win1251.
5. Мой адрес на tacis-dipol.ru давно ликвидирован.
АктСвер 3.01
Надо перекодировать файл в UTF-8, после чего всё будет, никаких проблемAdmin писал(а): ↑01 Декабрь 2020, 9:42 Я правильно понимаю что XML с русскими тегами не читаются?
Обычный английский без проблем.
При чтении русского через XMLFileToDOM получаю NULL
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?> <Файл Формат="АктСвер" ВерсияФормата="3.01" Имя="ON_ACCOUNTS___20201123_f36a5aa6-5cb1-4c2c-94ae-31f1df41bf18"> ... </Файл>
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
АктСвер 3.01
Это понял. Только нужно еще encoding="UTF-8" добавить
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса