Может быть возможно изменить строку отступа в libxml , но, насколько мне известно, вы не можете изменить использование DOM отступа. Это возможно для XMLWriter , хотя.
В качестве альтернативы вы можете использовать Tidy для красивой печати XML:
$dom = new DOMDocument;
$dom->preserveWhiteSpace = TRUE;
$dom->loadXml('<root><foo><bar> baz </bar></foo></root>');
$tidy = tidy_parse_string($dom->saveXml(), array(
'indent' => TRUE,
'input-xml' => TRUE,
'output-xml' => TRUE,
'add-xml-space' => FALSE,
'indent-spaces' => 4
));
$tidy->cleanRepair();
echo $tidy;
но учтите, что в вышеуказанном случае это ведет себя странно. Он удаляет пробелы в элементе bar, если вы не добавите xml:space="preserve"
к тегу bar. Когда вы сделаете это, он сохранит пробелы, но также поместит новые строки до и после. Вы должны возиться с этим, чтобы увидеть, соответствует ли это вашей проблеме. См Tidy Docs