PHP HTML "bastante impreso" (no ordenado)

Estoy usando la extensión DOM en PHP para construir algunos documentos HTML, y quiero que la salida tenga un buen formato (con nuevas líneas y sangría) para que sea legible, sin embargo, de las muchas pruebas que he realizado:

"formatOutput = true" no funciona en absoluto con saveHTML (), solo saveXML () Incluso si usé saveXML (), todavía funciona solo en elementos creados a través del DOM, no en elementos que están incluidos con loadHTML (), incluso con "preserveWhiteSpace = false"

Si alguien sabe diferente, me gustaría saber cómo lo hicieron funcionar.

Entonces, tengo un documento DOM, y estoy usando saveHTML () para generar el HTML. Como proviene del DOM, sé que es válido, no hay necesidad de "ordenar" o validarlo de ninguna manera.

Simplemente estoy buscando una manera de obtener una salida con buen formato de la salida que recibo de la extensión DOM.

NÓTESE BIEN. Como habrás adivinado, no quiero usar la extensión Tidy porque a) hace mucho más de lo que yo también necesito (el marcado ya es válido) yb) en realidad hace cambios en el contenido HTML (como el doctype HTML 5 y algunos elementos).

Seguimiento

OK, con la ayuda de la respuesta a continuación, he descubierto por qué la extensión DOM no funcionaba. Aunque el ejemplo dado funciona, todavía no funcionaba con mi código. Con la ayuda deest comentario Descubrí que si tiene nodos de texto donde isWhitespaceInElementContent () es verdadero, no se aplicará ningún formato más allá de ese punto. Esto sucede independientemente de si preserveWhiteSpace es falso o no. La solución es eliminar todos estos nodos (aunque no estoy seguro de si esto puede tener efectos adversos en el contenido real).

Respuestas a la pregunta(3)

Su respuesta a la pregunta