Чтение и запись XML с использованием JUST Java 1.5 (или более ранней версии) - PullRequest
5 голосов
/ 28 марта 2009

Для чтения XML в Java 1.5 встроены SAX и DOM. Вы можете использовать JAXP, и вам не нужно знать подробности о том, какой синтаксический анализатор доступен ... Итак, каковы некоторые предписанные API для записи XML-документов в Java 1.5 и более ранних версиях?

  • Я не хочу использовать сторонний бинарный файл
  • Я не хочу использовать виртуальную машину Sun или IBM VM и т. Д. И использовать какой-то специализированный класс
  • Какими бы ни были средства написания документа, я бы хотел прочитать их дополняющим образом.
  • Производительность и пригодность для больших файлов XML не особенно важны

В идеале чтение и запись без изменений - это всего лишь несколько строк кода.

Ответы [ 2 ]

5 голосов
/ 28 марта 2009

Java 1.4 поставляется с javax.xml.transform , который может принимать DOMSource , SAXSource и т. Д .:

// print document
InputSource inputSource = new InputSource(stream);
Source saxSource = new SAXSource(inputSource);
Result result = new StreamResult(System.out);
TransformerFactory transformerFactory = TransformerFactory
    .newInstance();
Transformer transformer = transformerFactory
    .newTransformer();
transformer.transform(saxSource, result);

Если вы хотите вернуться к API J2SE 1.3, вы в значительной степени сами по себе (хотя, если вы используете API J2EE той эпохи, возможно, что-то есть - я не помню).

0 голосов
/ 28 марта 2009

Официального «предписанного» API нет, но мы очень довольны следующей техникой:

Создайте класс XmlWriter, который инициализируется символом Writer и имеет такие методы, как startElement( String name ), writeAttribute( String name, String value ) и writeCData( String text ).

Тогда реализуй очевидным способом. Внутренние методы могут делать такие вещи, как экранирование символов SGML; см. Apache Commons для утилит, которые помогут.

Если вы хотите, чтобы вывод был более понятным для человека, вы можете делать такие вещи, как уровень вложенности элементов трека, добавлять новые строки, табуляции или пробелы. Также необязательно отслеживание таких вещей, как открытие и закрытие элемента без чего-либо внутри, что может быть сокращено до <element/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...