2012-01-16 5 views
0

Я пытаюсь добавить символ возврата каретки и символ линии, чтобы форматировать XML, чтобы каждый элемент отображался в отдельной строке в MS Notepad.Возврат каретки и перевод строки XML - Java

Я пробовал то, что предлагалось здесь: How to pretty print XML from Java?. Который добавляет символ подачи строки после каждого закрывающего элемента. Для более сложных редакторов, таких как richText и gedit и т. Д., Достаточно указать символ линии. Однако в блокноте мне кажется, что требуется возврат каретки, чтобы каждый элемент был на его собственной линии.

Есть ли способ представить это, изменив свойства Document Transformer? Если нет способа сделать это, не нужно разбирать весь XML-документ и добавлять его вручную?

+2

Обратите внимание, что в разделе [раздел по обработке новой строки] (http://www.w3.org/TR/REC-xml/#sec-line-ends) спецификации XML указано, что желаемый символ новой строки в XML документы - это символ линии. – buc

+0

@buc ​​Я вижу, поэтому добавление символа возврата каретки будет за пределами спецификации стандарта XML? – travega

+1

@travega Я не думаю, что пробел между элементами значителен, так что на самом деле. Вероятно, спецификатор пытается сказать, что программное обеспечение, отображающее XML, не должно требовать, чтобы вы использовали другой символ для новых строк. – millimoose

ответ

3

Вы можете сделать свою собственную реализацию Writer, которая обертывает существующий Writer/OutputStream и заменяет «\ n» на «\ r \ n» на лету во время записи. Если пробелы не значимы в тексте XML, это должно быть достаточно хорошим. Затем передайте экземпляры вашей оболочки в код, который выводит XML.

1

Просто выполните замену на \>< с помощью >^p<, где ^p является ParagraphMark в специальном форматировании в MS Word.