разбор xml файлов больших размеров

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AlexeySurgut
незнакомец
Сообщения: 2
Зарегистрирован: 19.12.2011 17:37:30

разбор xml файлов больших размеров

Сообщение AlexeySurgut »

Lazarus 1.0.2
FPC 2.6.0

Подскажите плиз, может кто сталкивался, как можно разбирать большие файлы XML (до нескольких Гигов) для конвертации в БД.
Последний раз редактировалось AlexeySurgut 07.12.2012 23:08:02, всего редактировалось 1 раз.
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

SAX-ом. Когда-то давным-давно пользовали порт SAX на Delphi.
AlexeySurgut
незнакомец
Сообщения: 2
Зарегистрирован: 19.12.2011 17:37:30

Сообщение AlexeySurgut »

А есть ли реализация SAX-парсера в FPC? Если есть подскажите имя модуля пж-та. А то поиск по справке и по инету результатов не дал...

Добавлено спустя 2 часа 52 минуты 24 секунды:
Спасибо Vapaamies за указание направления.
Нашел в FPC модуль SAX. При использовании непременно выдает исключение EDOMError.
Подразобравшись с этим безнадежным делом выяснилось следующее: ошибка происходит при первом же вызове TDOMDocument.CreateElement(tagName:string). В качестве tagName передается строка '?xml'. Как я понял, при проверке правильности имени данного тага функцией IsXMLName(...) из модуля xmlutils и генерируется исключение... :( :x
Актуальность в рабочем модуле SAX остается... Может есть у кого какие идеи или рабочие модули SAX?
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

Нашел у себя в архивах тот самый SAX, который использовали в 2004-м году, и он оказался аналогичен выложенному на SourceForge, но на SourceForge сейчас вроде новее. Новый не собирал. Старый в 2004-м нормально собирался и ставился в Delphi 6. Могу выложить исходники.

Добавлено спустя 2 минуты 46 секунд:
Да, забыл добавить: мы пользовались native-парсером, а не MS XML, чтобы не иметь зависимостей.
andrewks
новенький
Сообщения: 10
Зарегистрирован: 18.10.2012 23:37:43

Сообщение andrewks »

AlexeySurgut, тэг не может иметь имя '?xml', символы типа ? в имени тэга не допускаются
PapaNT
постоялец
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Сообщение PapaNT »

Зная примерную структуру файла, я парсил его своим самопальным парсером в txt. На виртуалке парсинг трех гигов (в два прохода) занял около 5-ти минут на проход.
Ответить