Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xpath и xml более 100М 
:(
    Опции темы
polosatij
  Дата 20.11.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8




вырыл себе яму на пустом месте..  smile 

у нас в систему приходят .хмл файлы, есть также структура описания в .xsd. посмотрев ко всему ещё apache commons configurations мне пришла в голову "гениальная" идея:

.xsd -> .xml -> xpath 

т.к. структура сама по себе очень большая я за пару дней написал некий генератор из .xml в .xpath такой структуры:

.xml

Код

   <root>
      <Ahp>
         <b>foobar</b>
      </Ahp>
   </root>


и xpath:

Код

    Ahp.b


теперь подключив apache commons configurations -> XMLConfiguration, я стал доставать контент в две строки ява:

Код

        final List < SubnodeConfiguration > subnodes = getAIXMParserUtil().getAIXMElements(Ahp.PREFIX); // достаю все Ahp
        for (final SubnodeConfiguration subnode : subnodes) {
             subnode.getString(Ahp.b); // а так просто я достаю элемент <b>


всё чики пики.. закидываем файл 10М, парсер менее чем за 1секунду достаёт нужныe значения, пока мне не дали файл на 100М и сказали, что файл может быть и размером 1Гиг.. закидывая файл в мой парсер, ява падает вместе с линуксом и ошибкой OutOfMemoryError..

полез посмотреть в сурсы apache commons configuration и с ужасом обнаружил, что он создаёт DOM..  smile  smile

млин.. теперь похоже всё нужно перестроить на Sax или Stax.. или может кто чего другого посоветует? как работать с xpath с большими xml файлами?  smile  


--------------------
PM   Вверх
polosatij
  Дата 20.11.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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


--------------------
PM   Вверх
polosatij
  Дата 20.11.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8





есть ещё такой вариант:

http://ws.apache.org/commons/axiom/OMTutorial.html


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.