#java #xml #sax
#java #xml #sax
Вопрос:
Возможно ли в Java создать точную копию XML-файла, который считывается с помощью SAX? По сути, используя методы startElement, characters, endElement для чтения исходного файла. Хотя я ценю любую готовность помочь, пожалуйста, не отклоняйтесь от этого первоначального вопроса или ответа, предлагая другой подход к чтению файла; например, меня не интересует DOM. Спасибо!
Комментарии:
1. Как насчет этого: download.oracle.com/javaee/1.4/tutorial/doc/JAXPSAX3.html
Ответ №1:
Нет, я не верю, что SAX обязательно позволит вам создать eaxct копию файла.
Например, я не верю, что вы смогли бы определить разницу между:
<foo>3 > 1</foo>
и
<foo>3 amp;> 1</foo>
В обоих случаях, я полагаю, вам будет предоставлена строка, содержащая символы «3 > 1» без какого-либо указания на то, был ли >
экранирован.
Вероятно, вы могли бы создать XML-эквивалентную копию исходного файла, но это не то, о чем вы спрашивали, поэтому я не буду вдаваться в подробности.
Ответ №2:
Вы могли бы использовать XmlWriter от Дэвида Меггинсона, находящийся в общественном достоянии (фильтр SAX). от Дэвида Меггинсона. Это доступно здесь, и для загрузки есть исходный код и примеры.
(Примечание. вывод будет точным логическим соответствием входным данным, создание точного лексического соответствия в общем случае невозможно, поскольку соответствующие XML-процессоры теряют некоторые лексические особенности входных данных, например, пробелы в тегах).