XML-объекты абстрагируются в DOM. Контент предоставляется String без необходимости беспокоиться о кодировке, что в большинстве случаев является тем, что вам нужно.
Но SAX имеет некоторую поддержку для обработки сущностей. Вы можете попытаться создать XMLReader
с пользовательским EntityResolver#resolveEntity
и передать его в качестве параметра SAXReader
. Но я подвиг это может не сработать:
Парсер вызовет этот метод
перед открытием любого внешнего объекта
кроме сущности документа верхнего уровня
(включая внешнее подмножество DTD,
внешние объекты, на которые есть ссылки в
DTD и внешние объекты
упоминается в документе
элемент)
В противном случае вы можете попытаться настроить LexicalHandler
для SAX таким образом, чтобы получать уведомления при обнаружении сущности. Javadoc для LexicalHandler#startEntity
говорит:
Сообщить о начале какого-то внутреннего
и внешние сущности XML.
Вы не сможете изменить разрешение, но это все равно может помочь.
EDIT
Вы должны читать и писать XML с SAXReader
и XMLWriter
, предоставленными dom4j. См. чтение XML-файла и запись XML-файла . Не используйте asXml()
и сохраните файл самостоятельно.
FileOutputStream fos = new FileOutputStream("simple.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(fos, format);
writer.write(doc);
writer.flush();