C10 SQL парсить XML

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

ноутбук win 10 32 разряда озу=3.15 intel Core(tm) 1.8 GHz SSD ДИСК
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

C10 SQL парсить XML

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

talgat55 писал(а): 08 Февраль 2020, 19:31 Резать не хотел - долго муторно
А Вы как-то проверяли целостность и корректность загружаемого XML документа ?
Если внутри XML есть косяк с каким-нибудь тегом - то загрузку запросто может переклинить.
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

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

C10 SQL парсить XML

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

talgat55 писал(а): 08 Февраль 2020, 19:57 федеральная структура
Это абсолютно ни о чём не говорит … Есть, например, кодировка спецсимволов, разные спецификации и т.д.
Загружаемый XML документ открывается, например в штатном броузере Win10 EDGE на Вашем ноуте или тоже виснет ?
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

ЗАпустил "открытие" жду
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

C10 SQL парсить XML

Сообщение Yufil »

1. Если документ некорректный, он не прочитается

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

 

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)
Если структура документа некорректна, XMLDoc будет равен NULL
FillDomQueue пробегается по древесной структуре документа и выкладывает её в очередь. Процедура не особенно хитрая ( правда, рекурсивная ) , можно трассировать отладчиком, померить скорость выполнения и даже написать свой вариант попроще, с изготовлением своей очереди или записи в файл.

2. Можно загрузить XML-файл любым браузером, посмотреть сколько времени пройдёт, пока отобразится ( или не )
3. Нельзя открыть xml-файл текстовым редактором и удалить или закомментировать часть файла , чтобы осталось 100/1000/10000 записей и попробоавть загрузить, сколько времени займёт?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

C10 SQL парсить XML

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

talgat55 писал(а): 08 Февраль 2020, 20:19 ЗАпустил "открытие" жду
Ну например у меня есть XML документ 90 MByte, он открывается в EDGE 6 секунд.
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

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

C10 SQL парсить XML

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

talgat55 писал(а): 08 Февраль 2020, 20:34 не загрузился выдал ошибку ни о чем
Сделайте простой тест.
Возьмите одну корректную запись их XML документа и запишите её 200 т. раз + открывающий / закрывающий теги.
Теперь откройте полученный XML в EDGE и попробуйте загрузить в QUEUE.
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

файл открывается в excel- значит стуктура норм
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

C10 SQL парсить XML

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

Дело же не в структуре (последовательности тегов), а в том, что набила Ваша федеральная структура между ними.
Но если Вы сами знаете, что делать то я пойду лучше посплю. Нет ! Лучше поем, а потом посплю. Удачи ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 307
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 2 раза

C10 SQL парсить XML

Сообщение talgat55 »

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

C10 SQL парсить XML

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

talgat55 писал(а): 08 Февраль 2020, 19:41 ноутбук win 10 32 разряда озу=3.15 intel Core(tm) 1.8 GHz SSD ДИСК
ОЗУ 3 гигабайт может быть мало.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

C10 SQL парсить XML

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

Дед Пахом писал(а): 08 Февраль 2020, 21:37 ОЗУ 3 гигабайт может быть мало.
Так для Win10 x32 больше и нельзя по законам физики … У меня тоже самое и никаких проблем.
Тут более важно чего наставлено на эту RAM, что контролирует поток данных при чтении файлов и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить