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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что лучше для разбора xml-документа, SAX, DOM или JAXB? 
:(
    Опции темы
Barvetal
Дата 12.4.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

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



Всем привет!

Стоит задача разбора различных xml-документов.

Иногда есть ситуации, когда xsl-преобразования недостаточно.

Вот здесь и пытаюсь додуматься, какую из технологий следует использовать для разбора xml-документа: sax (когда парсер дергает мои функции, и передает им теги и их содержание), dom (когда я иду по дереву), или jaxb (когда мне строится структура классов, соответствующая xml-документу).

Как думаете, какую из этих технологий следует использовать в общем случае? Какая из них работает наиболее быстро?

Помогите разобраться, пожалуйста.

Всем заранее спасибо!
PM MAIL   Вверх
tux
Дата 12.4.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



SAX гораздо экономнее использует память поскольку нет необходимости хранить весь XML в отличие от DOM и JAXB. Как следствие, можно обрабатывать документы любого размера. Как здесь производительность сравнивать не понятно, ведь это совершенно разные вещи. Вообще скорость работы уже будет от тебя зависеть - сам ведь будешь писать методы для обработки.
PM MAIL Skype GTalk Jabber YIM   Вверх
Barvetal
Дата 13.4.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

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



Нашел очень замечательную статью по сравнению производительности технологий разбора xml-файлов:
http://javagu.ru/portal/dt?last=false&...U_SECTION_80704

На этом же сайте есть масса других интерестных статей по xml и java
PM MAIL   Вверх
3,14
Дата 14.4.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



tux, правильно говорит, сравнивать их нельзя, DOM и JAXB гораздо удобней, но они записывают документ целиком в память, SAX конечно по шустрее, но если написанный тобой код сведётся к тому, что ты ручками через SAX бужешь делать тоже что делает DOM, быстрее чем DOM у тебя не получиться.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
ALKS
Дата 15.4.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 6
Всего: 11



SAX не быстрее JAXB. JAXB для того и придуман: для работы как-бы с DOM но со скоростью SAX. Но конечно тут еще многое зависит от того какую имплементацию использовать. Я лично всегда, если возможно, выбираю JAXB ибо просто, удобно и JAXB2 уже весьма вылезанная библиотека, не что первые версии... как вспомню, так вздрогну.
PM   Вверх
3,14
Дата 17.4.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



На сколько я помню JAXB так же как и DOM подгружает документ в память целиком, что есть очень большое ограничение. 


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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