Я использую XMLEventReader для чтения содержимого XML с вкладкой внутри, позже я использую XMLEventWriter для записи их обратно в другой файл. Тем не менее, 3 вкладки в исходном вводе были изменены на 3 пробела в моем выводе. Почему это происходит? Возможно ли, что они сохранятся в новом файле?
Пожалуйста, посмотрите, что этот фрагмент кода для отображения 3 вкладки заменен на 3 пробела:
public static void testXMLStreamWriter() {
try {
final XMLEventFactory xmlEventFactory = XMLEventFactory.newInstance();
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
XMLEventWriter xmlEventWriter = xmlOutputFactory.createXMLEventWriter(System.out);
// here the input contians 3 tabs
String xmlStr = "<tag>\n" + "<formatter pattern=\"abc xyz\"/>\n" + "</tag>";
XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new StreamSource(new StringReader(xmlStr)));
// adds the event to the consumer.
xmlEventWriter.add(xmlEventReader);
xmlEventWriter.flush();
xmlEventWriter.close();
// expected success
} catch (Exception e) {
e.printStackTrace();
}
}
Я ожидал увидеть 3 вкладки вмой вывод как:
<?xml version="1.0" standalone="no"?><tag>
<formatter pattern="abc xyz"></formatter>
</tag>
Но я получил
<?xml version="1.0" standalone="no"?><tag>
<formatter pattern="abc xyz"></formatter>
</tag>