Lazarus 1.0.2
FPC 2.6.0
Подскажите плиз, может кто сталкивался, как можно разбирать большие файлы XML (до нескольких Гигов) для конвертации в БД.
разбор xml файлов больших размеров
Модератор: Модераторы
-
AlexeySurgut
- незнакомец
- Сообщения: 2
- Зарегистрирован: 19.12.2011 17:37:30
разбор xml файлов больших размеров
Последний раз редактировалось AlexeySurgut 07.12.2012 23:08:02, всего редактировалось 1 раз.
-
AlexeySurgut
- незнакомец
- Сообщения: 2
- Зарегистрирован: 19.12.2011 17:37:30
А есть ли реализация SAX-парсера в FPC? Если есть подскажите имя модуля пж-та. А то поиск по справке и по инету результатов не дал...
Добавлено спустя 2 часа 52 минуты 24 секунды:
Спасибо Vapaamies за указание направления.
Нашел в FPC модуль SAX. При использовании непременно выдает исключение EDOMError.
Подразобравшись с этим безнадежным делом выяснилось следующее: ошибка происходит при первом же вызове TDOMDocument.CreateElement(tagName:string). В качестве tagName передается строка '?xml'. Как я понял, при проверке правильности имени данного тага функцией IsXMLName(...) из модуля xmlutils и генерируется исключение...
Актуальность в рабочем модуле SAX остается... Может есть у кого какие идеи или рабочие модули SAX?
Добавлено спустя 2 часа 52 минуты 24 секунды:
Спасибо Vapaamies за указание направления.
Нашел в FPC модуль SAX. При использовании непременно выдает исключение EDOMError.
Подразобравшись с этим безнадежным делом выяснилось следующее: ошибка происходит при первом же вызове TDOMDocument.CreateElement(tagName:string). В качестве tagName передается строка '?xml'. Как я понял, при проверке правильности имени данного тага функцией IsXMLName(...) из модуля xmlutils и генерируется исключение...
Актуальность в рабочем модуле SAX остается... Может есть у кого какие идеи или рабочие модули SAX?
- Vapaamies
- постоялец
- Сообщения: 292
- Зарегистрирован: 24.07.2012 22:37:59
- Откуда: Санкт-Петербург
- Контактная информация:
Нашел у себя в архивах тот самый SAX, который использовали в 2004-м году, и он оказался аналогичен выложенному на SourceForge, но на SourceForge сейчас вроде новее. Новый не собирал. Старый в 2004-м нормально собирался и ставился в Delphi 6. Могу выложить исходники.
Добавлено спустя 2 минуты 46 секунд:
Да, забыл добавить: мы пользовались native-парсером, а не MS XML, чтобы не иметь зависимостей.
Добавлено спустя 2 минуты 46 секунд:
Да, забыл добавить: мы пользовались native-парсером, а не MS XML, чтобы не иметь зависимостей.
AlexeySurgut, тэг не может иметь имя '?xml', символы типа ? в имени тэга не допускаются
Зная примерную структуру файла, я парсил его своим самопальным парсером в txt. На виртуалке парсинг трех гигов (в два прохода) занял около 5-ти минут на проход.
