Это довольно старый вопрос, но я думаю, я знаю, в чем проблема:
Миниатюрная печать довольно простой метод. Он просто добавляет символы, которые вы указали в качестве аргументов. Это означает, что он будет дублировать символы, если они уже существуют.
например. если вы анализируете XML-файл, который выглядит следующим образом:
<parent>
<child>
Some text
</child>
</parent>
в домике уже есть символы новой строки и отступы. Они воспринимаются минидомом как текстовые узлы и остаются там, когда вы разбираете его в объект dom.
Если вы сейчас приступите к преобразованию объекта dom в строку XML, эти текстовые узлы все еще будут там. То есть символы новой строки и вкладки отступа все еще остаются. Теперь, используя симпатичную печать, просто добавьте больше новых строк и больше вкладок. Вот почему в этом случае вообще не используется симпатичная печать или указание newl=''
приведет к желаемому результату.
Однако, вы генерируете dom в своем скрипте, текстовые узлы там не будут, поэтому красивая печать с newl='\r\n'
и / или addindent='\t'
будет довольно симпатичной.
TL; DR Отступы и переводы строк остаются от разбора, а симпатичная печать просто добавляет больше