Как я могу наилучшим образом создать и отредактировать XML в моем Java-приложении

#java #xml #stax #dom4j

#java #xml #stax #dom4j

Вопрос:

Мне нужно создать некоторый XML программно, иногда с помощью программных вызовов, иногда начиная с чтения в некотором XML (строка), а затем пересматривая его с помощью вызовов. А затем записать XML в поток.

Я полагаю, что запись лучше всего выполнять с помощью codehaus stax (если есть более новый способ, пожалуйста, скажите мне, какой). Но в остальном в настоящее время я использую dom4j, и это старое и заброшенное. Поэтому мне нужно перейти на что-то, что поддерживается и не имеет проблем с безопасностью.

Есть ли что-то в среде выполнения Java? Или есть часто используемая библиотека?

Мы находимся на Java 1.8, поэтому решение не может требовать версии 1.9 или более поздней.

Комментарии:

1. У Джексона есть возможности xml

Ответ №1:

Здесь у вас есть много вариантов.

Синтаксические анализаторы

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

Плюсы

  • вы можете загрузить любой файл
  • у вас есть все стандартные инструменты XML, такие как преобразования XSLT, xpath и т. Д..

Минусы

  • сложно программно создать новый файл
  • сложнее извлечь из него информацию

Инструменты

Сериализация объектов

Второй подход, который вы можете предпринять, — это синтаксический анализ объектов. У вас в основном есть класс, который представляет вашу структуру данных, и вы сериализуете его в / из XML.

Плюсы

  • супер простой в использовании
  • быстро просто считывать / записывать данные из существующих структур данных

Минусы

  • непросто использовать XSLT и т. Д..
  • не удается прочитать случайные XML-файлы

Инструменты

  • JAXB
  • XStream
  • Джексон