Получите Java для использования вкладок вместо пробелов для отступа - PullRequest
6 голосов
/ 02 апреля 2010

Я создаю документ XML. Я получил это, чтобы сделать отступ, используя TransformerFactory.setAttribute("indent-number", new Integer(2)); Transformer.setOutputProperty(OutputKeys.INDENT, "yes");

Можно ли заставить Java использовать табуляции вместо пробелов для отступа? И как?

Ответы [ 3 ]

2 голосов
/ 02 апреля 2010

Нет, не в общем. Спецификация XSLT не позволяет указывать ЧТО пробел использовать при отступе.

Однако это может быть элемент для настройки XSLT-процессора. Проверьте документацию на тот, который вы используете.

Если вы ДЕЙСТВИТЕЛЬНО хотите этого, тогда вы можете использовать XSLT-скрипт для форсажа на выходе, который делает все, что вы хотите сделать на узлах text ().

1 голос
/ 02 апреля 2010

Да, вкладки считаются злом некоторыми. Однако, если вы хотите использовать TransformFactory и хотите изменить поведение отступа, чтобы использовать пробелы вместо пробелов, вам необходимо предоставить собственную реализацию ContentHandler. Затем передайте вашу реализацию ContentHandler в новый SAXResult - передайте это как "результат" в Transformer.transform(...). Много обручей, чтобы прыгать. Другое соображение может заключаться в том, чтобы использовать умный XSLT для вывода.

0 голосов
/ 02 апреля 2010

Я думаю, что нет.

Вы можете получить результат и обработать его, заменив вызов str.replace("\n ", "\n\t") (или любым другим количеством пробелов).

Но я бы рекомендовал против этого - вкладки не зависят от платформы.

...