![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| polosatij |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
вырыл себе яму на пустом месте.. у нас в систему приходят .хмл файлы, есть также структура описания в .xsd. посмотрев ко всему ещё apache commons configurations мне пришла в голову "гениальная" идея: .xsd -> .xml -> xpath т.к. структура сама по себе очень большая я за пару дней написал некий генератор из .xml в .xpath такой структуры: .xml
и xpath:
теперь подключив apache commons configurations -> XMLConfiguration, я стал доставать контент в две строки ява:
всё чики пики.. закидываем файл 10М, парсер менее чем за 1секунду достаёт нужныe значения, пока мне не дали файл на 100М и сказали, что файл может быть и размером 1Гиг.. закидывая файл в мой парсер, ява падает вместе с линуксом и ошибкой OutOfMemoryError.. полез посмотреть в сурсы apache commons configuration и с ужасом обнаружил, что он создаёт DOM.. млин.. теперь похоже всё нужно перестроить на Sax или Stax.. или может кто чего другого посоветует? как работать с xpath с большими xml файлами? |
||||||
|
|||||||
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
пока накопал вот это: http://stx.sourceforge.net/ Streaming Transformations for XML (STX) is a one-pass transformation language for XML documents. STX is intended as a high-speed, low memory consumption alternative to XSLT, using the W3C XQuery 1.0 and XPath 2.0 Data Model. Since STX does not require the construction of an in-memory tree, it is suitable for use in resource constrained scenarios. https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/3957 ---- http://joost.sourceforge.net/ может кто что скажет по этому поводу? пс. вход файла 1 - 10гиг Это сообщение отредактировал(а) polosatij - 20.11.2008, 21:18 |
|||
|
||||
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |