Страница 1 из 2

C10 SQL парсить XML

Добавлено: 07 Февраль 2020, 10:27
talgat55
Как используя стандартные средства c10 импортировать из XML в dbf csv Excel ?

C10 SQL парсить XML

Добавлено: 07 Февраль 2020, 13:28
Игорь Столяров
1. Загрузить XML в очередь:
viewtopic.php?f=1&t=1726
viewtopic.php?f=1&t=3390
viewtopic.php?f=27&t=4260&start=75

2. Записать очередь в нужный формат:
XLSX: viewtopic.php?f=8&t=3830
DBF и CSV: см. в справке раздел про dBase и ASCII драйвер.

3. Всё. :)

C10 SQL парсить XML

Добавлено: 07 Февраль 2020, 14:09
talgat55
Спасиб ! А если в xml 2000000 записей и более в одном xml -очереди пройдут ?

C10 SQL парсить XML

Добавлено: 07 Февраль 2020, 14:17
Игорь Столяров
Пожал !
Не вижу причин, по которым бы это не работало … но ! запись - она разная бывает … :)
Поэтому пока не попробуете - не знаете. ;)

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 15:18
talgat55
сделал парсинг в С10 с помощью vewXML - парсит четко - перевел в UTF 8 но русские буквы - кракозяблы - ка это победить ???

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 15:45
Игорь Столяров
talgat55 писал(а): 08 Февраль 2020, 15:18 перевел в UTF 8 но русские буквы - кракозяблы
Немного не понятен вопрос.
Дело в том, что парсер Clarion работает только с XML документами в кодировке UTF-8.
Может быть нужно наоборот, после того, как Вы получили данные из XML конвертировать их из UTF-8 в ANSI кодировку ?

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 16:05
talgat55
КАК ? ПРИВОЖУ пример разбора параметров - перевел fam в ascii - везде кракозяблы
ParseName2 Routine
nnm &= QXML.Node.getAttributes()
if not nnm &= null ! Есть атрибуты
loop AttrIndex = 0 to nnm.getLength() - 1 ! Цикл по атрибутам
Anode &= nnm.item(AttrIndex)
CS.ToascII()
Case (ANode.GetNodename())
OF 'BEGDATA'
Param2Value=ANode.getNodeValue()
! MESSAGE(Param2Value)
Of 'FAM'

Param3Value=ANode.getNodeValue()
MESSAGE(Param3Value)
Of 'IM'
Param4Value=ANode.getNodeValue()
! MESSAGE(Param4Value)
Of 'OT'
Param5Value=ANode.getNodeValue()
! MESSAGE(Param5Value)
Of 'DR'
Param6Value=ANode.getNodeValue()
! MESSAGE(Param6Value)

END

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 16:43
talgat55
Нашел причину - надо
CS.Set(Anode.GetNodeValue())
CS.ToAscii()
Case lower(ANode.GetNodename())
Of 'level' !
ManQ:Level = CS.S
OF 'id'
и тогда все Ок !

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 17:29
Дед Пахом
Что означают все эти буквы?

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 17:37
Yufil
Это фрагмент из моей программы, которая парсит сохранённую в виде XML структуру оБучающего модуля :D
Дальше всё это дело преобразуется и на основе этих данных строится SCORM-манифест,
он пакуется вместе с данными программы и получатеся SCORM-пакет.
Пакет загружается в LMS с поддержкой SCORM ( например, Moodle ) . Ну и так далее...

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 18:51
talgat55
XML имеет 400000 записей и че-то висит на этапе начала работы с создаваемой очередью ... Хотя файл новый с кодировкой utf 8 создан. Неужели это предел какой-то для записи в очередь ?

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 19:12
talgat55
висит на этапе загрузки документа в очередь- FillDomQueue(XMLDoc,ListXML,1)

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 19:20
Yufil
А если редактором урезать, например, до 100 (или 1000) записей. Прочитается ?
Что будет, если файл просмотреть шаблоном ViewXML ?

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 19:26
Игорь Столяров
talgat55 писал(а): 08 Февраль 2020, 19:12 висит на этапе загрузки документа в очередь
Если компьютер помнит Чингисхана - то для загрузки 200 т. записей потребуется некоторое время. :)

C10 SQL парсить XML

Добавлено: 08 Февраль 2020, 19:31
talgat55
пробовал viewXML тоже зависает не дождешьси... Резать не хотел - долго муторно и как понял ручная работа- так-то на малых размерах- моментом делает