Метод XML::LibXML::Document::serialize
записывает XML-документ в виде текста. Его параметр допускает ограниченный контроль над форматом вывода.
XML::LibXML
является шпоном системной библиотеки libxml2
. Эта библиотека поставляется с жестко закодированным отступом в 2 пробела, поэтому, если вы не создадите свой собственный симпатичный принтер, ваши параметры будут ограничены.
Однако, существует ряд автономных утилит, которые переформатируют синтаксически допустимый xml и позволяютболее детальный контроль и который может быть запущен как постпроцессор из perl для файла с сериализованным xml. Я был удовлетворен xmlstarlet
и xmllint
.
Еще один вопрос - действительно ли вы хотите инвестировать много ресурсов в это начинание. Если вам нужна удобочитаемая версия для отладки или проверки не по порядку, то загрузки данных в браузер, такой как Chrome или Firefox, может быть достаточно - они запускают данные XML через очень приличный симпатичный принтер.