2009-08-27 2 views
6

Я использую JDOM для общих XML разбора в течение длительного времени, но ощущение, что там должно быть что-то лучше, или, по крайней мере, более легким, для Java 5 или 6.Должен ли я использовать JDOM с Java 5 или 6?

Там нет ничего плохого с JDOM API, но мне не нравится включать Xerces с моими развертываниями. Есть ли более легкая альтернатива, если все, что я хочу сделать, читается в XML-файле или записывает его?

ответ

6

Лучшая легкая альтернатива - это, на мой взгляд, XOM, но JDOM по-прежнему очень хороший API, и я не вижу причин заменять его.

Он не имеет зависимости от Xerces, хотя (по крайней мере, ему не нужен дистрибутив Apache Xerces, он работает вместе с Xerces, который упакован в JRE).

2

Мы используем JAXB - он генерирует классы на основе схемы. Вы можете создавать свои файлы без схемы и просто комментировать, как вы хотите, чтобы xml был.

+0

Я бы не назвал JAXB заменой для JDOM, хотя он решает довольно разные проблемы. – skaffman

+1

Из вопроса я понял, что конкретный XML нужно читать и писать. Если да, почему бы не определить схему и не сохранить весь утомительный синтаксический анализ. Если нужно написать произвольный xml, я согласен (я считаю, что это довольно редкий случай) –

+0

+1 Я полностью соглашаюсь сначала записать объекты домена/конфигурации, а затем беспокоиться о XML. –

0

Вы должны зарегистрироваться Commons Digester (см. Ответ, который я дал here). Он обеспечивает очень легкий механизм анализа XML.

3

Я использовал пакет javax.xml.stream (XMLStreamReader/XMLStreamWriter) для чтения и записи XML с использованием методов xml pull/push. Я работал до сих пор.

+0

+1 с учетом того, что пакет javax.xml.stream доступен только на Java 6. –

+1

Если у вас нет java 6, но вы все еще хотите использовать xmlpp, вы можете проверить http://www.xmlpull.org/ , Пакет javax.stream НЕ является синтаксическим парсером, совместимым с xmlpull.org (это API немного отличается), но они очень близки. – KitsuneYMG

+0

Знаете ли вы о каких-либо сторонних потоковых API, подходящих для * записи * XML? –

0

JDOM очень хороший и простой. Существует много новых способов анализа XML после выпуска JDOM, но они имеют разную направленность, чем простоту. JAXB делает вещи простыми в некоторых случаях, когда у вас хорошо известный XML-документ, ваша схема не обновляется ежедневно. Новые синтаксические анализаторы очень хороши и даже обязательны для очень больших файлов XML (сотни МБ). Скоростной выигрыш для анализатора SAX может быть в десять раз.

0

Я хотел бы думать, JAXP хорошим выбор для вас. Это стандарт, входящий в состав JDK, он обеспечивает понятный интерфейс и позволяет подключать любые реализации. Если вам нужно все, чтобы читать и писать не очень большие и перегруженные XML-файлы, JAXP DOM api, встроенный в JDK, будет охватывать вас требования.

2

Был недавно развит JDOM для java 5 под названием coffeeDOM. Вам стоит это увидеть.

+0

+1: CoffeeDOM действительно очень удобная вилка и делает работу с API более удобной и интересной – ngeek

Смежные вопросы