C10 SQL парсить XML
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
talgat55
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
А Вы как-то проверяли целостность и корректность загружаемого XML документа ?
Если внутри XML есть косяк с каким-нибудь тегом - то загрузку запросто может переклинить.
Make Clarion Great Again ! 
Игорь Столяров
C10 SQL парсить XML
этот xml рассылает федеральная структура- там все ок
Если обрабатывать как текст вручную (програмкой ) стОит нет - или по времени тоже бесконечность ?
Если обрабатывать как текст вручную (програмкой ) стОит нет - или по времени тоже бесконечность ?
talgat55
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
Это абсолютно ни о чём не говорит … Есть, например, кодировка спецсимволов, разные спецификации и т.д.
Загружаемый XML документ открывается, например в штатном броузере Win10 EDGE на Вашем ноуте или тоже виснет ?
Make Clarion Great Again ! 
Игорь Столяров
talgat55
C10 SQL парсить XML
1. Если документ некорректный, он не прочитается
Если структура документа некорректна, XMLDoc будет равен NULL
FillDomQueue пробегается по древесной структуре документа и выкладывает её в очередь. Процедура не особенно хитрая ( правда, рекурсивная ) , можно трассировать отладчиком, померить скорость выполнения и даже написать свой вариант попроще, с изготовлением своей очереди или записи в файл.
2. Можно загрузить XML-файл любым браузером, посмотреть сколько времени пройдёт, пока отобразится ( или не )
3. Нельзя открыть xml-файл текстовым редактором и удалить или закомментировать часть файла , чтобы осталось 100/1000/10000 записей и попробоавть загрузить, сколько времени займёт?
Код: Выделить всё
ListXML queue(DOMQueue) ! Очередь для считывания параметров
end
xmlDoc &Document,Auto
Nl &Nodelist,Auto
nnm &NamedNodeMap,auto
ANode &Node,Auto
AttrIndex Long
Loc:FileName CString(260)
CS &CString
!----------------------------------------------------------------------------------
! Читаю XML-файл
Ret# = S.LoadFromFile(Loc:FileName)
If Ret#
Say('Ошибка загрузки сценария ' & Loc:FileName )
Return(Ret#)
End
! Разборка
XmlDoc &= XmlStringToDom(S.S)
If XMLDoc &= Null
Say('Ошибка разборки сценария ' & Loc:FileName )
Return(1)
End
! Перезапись DOM в очередь
FillDomQueue(XMLDoc,ListXML,1)
FillDomQueue пробегается по древесной структуре документа и выкладывает её в очередь. Процедура не особенно хитрая ( правда, рекурсивная ) , можно трассировать отладчиком, померить скорость выполнения и даже написать свой вариант попроще, с изготовлением своей очереди или записи в файл.
2. Можно загрузить XML-файл любым браузером, посмотреть сколько времени пройдёт, пока отобразится ( или не )
3. Нельзя открыть xml-файл текстовым редактором и удалить или закомментировать часть файла , чтобы осталось 100/1000/10000 записей и попробоавть загрузить, сколько времени займёт?
Yufil
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
Ну например у меня есть XML документ 90 MByte, он открывается в EDGE 6 секунд.
Make Clarion Great Again ! 
Игорь Столяров
talgat55
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
Сделайте простой тест.
Возьмите одну корректную запись их XML документа и запишите её 200 т. раз + открывающий / закрывающий теги.
Теперь откройте полученный XML в EDGE и попробуйте загрузить в QUEUE.
Make Clarion Great Again ! 
Игорь Столяров
talgat55
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
Дело же не в структуре (последовательности тегов), а в том, что набила Ваша федеральная структура между ними.
Но если Вы сами знаете, что делать то я пойду лучше посплю. Нет ! Лучше поем, а потом посплю. Удачи !
Но если Вы сами знаете, что делать то я пойду лучше посплю. Нет ! Лучше поем, а потом посплю. Удачи !

Make Clarion Great Again ! 
Игорь Столяров
talgat55
Дед Пахом
- Игорь Столяров
- Ветеран движения
- Сообщения: 8074
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
C10 SQL парсить XML
Так для Win10 x32 больше и нельзя по законам физики … У меня тоже самое и никаких проблем.
Тут более важно чего наставлено на эту RAM, что контролирует поток данных при чтении файлов и т.д.
Make Clarion Great Again ! 
Игорь Столяров
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)