Hallo und guten Morgen,
ich würde das DOM aus einem String laden, und nicht aus einer Datei. Das hat den Vorteil, dass Du die Meta-Angabe für den Content-Type noch vorschalten kannst, wenn sie in der ersten Zeile der Datei nicht enthalten sein sollte.
Und die Formatierung sollte eigentlich erhalten bleiben. Du hast doch
$dom->preserveWhiteSpace = true;
und $dom->formatOutput = true;
eingeschaltet.
Grüße
TS