Быстрый поиск объекта JAXB - PullRequest
0 голосов
/ 10 марта 2012

В моем собственном тесте, а также в других веб-ссылках JAXB быстрее разбирает файлы XML по сравнению с библиотекой DOM. Однако когда я попытался найти объект JAXB из его корневого объекта, его скорость разочаровала по сравнению с DOM.

Для поиска с помощью JAXB я использовал библиотеку Apache JXPath, то есть класс JXPathContext и его метод getValue (). Для сравнения, для поиска в DOM я использовал класс Document и его метод getElementsByTagName (). Мой тест показывает, что первый намного медленнее, чем второй.

Итак, перед нами стоит дилемма: если я хочу быстро проанализировать XML-файлы, я хочу использовать JAXB, но если я хочу быстро найти объект узла, я должен использовать DOM. Мне интересно, есть ли оптимальный способ сделать и то и другое, например, более быстрый метод поиска объектов JAXB или перемещения по дереву JAXB, чем JXPath.

Заранее спасибо!

1 Ответ

1 голос
/ 10 марта 2012

Я здесь упускаю очевидное?

Маршалы JAXB для объектов Java. Java-объекты могут содержать методы. Такой как метод поиска. Это было бы намного быстрее, чем полагаться на кучу самоанализа для поиска аннотаций для универсального метода, поскольку по умолчанию вы можете пропустить ненужные части вашего XML. Еще лучше: вы можете оптимизировать сами структуры данных (объекты Java) для конкретных поисковых запросов.

...