Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Что лучше для разбора xml-документа


Автор: Barvetal 12.4.2006, 14:40
Всем привет!

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

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

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

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

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

Всем заранее спасибо!

Автор: tux 12.4.2006, 14:50
SAX гораздо экономнее использует память поскольку нет необходимости хранить весь XML в отличие от DOM и JAXB. Как следствие, можно обрабатывать документы любого размера. Как здесь производительность сравнивать не понятно, ведь это совершенно разные вещи. Вообще скорость работы уже будет от тебя зависеть - сам ведь будешь писать методы для обработки.

Автор: Barvetal 13.4.2006, 13:35
Нашел очень замечательную статью по сравнению производительности технологий разбора xml-файлов:
http://javagu.ru/portal/dt?last=false&provider=javaguru&ArticleId=GURU_ARTICLE_81147&SecID=GURU_SECTION_80704

На этом же сайте есть масса других интерестных статей по xml и java

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

Автор: ALKS 15.4.2006, 11:08
SAX не быстрее JAXB. JAXB для того и придуман: для работы как-бы с DOM но со скоростью SAX. Но конечно тут еще многое зависит от того какую имплементацию использовать. Я лично всегда, если возможно, выбираю JAXB ибо просто, удобно и JAXB2 уже весьма вылезанная библиотека, не что первые версии... как вспомню, так вздрогну.

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)