PHP «красивая печать» HTML (не Tidy)

Я использую расширение DOM в PHP для создания некоторых документов HTML, и я хочу, чтобы вывод был хорошо отформатирован (с новыми строками и отступами), чтобы его можно было прочитать из многих тестов, которые я сделал:

«formatOutput = true» вообще не работает с saveHTML (), только saveXML ()Даже если я использовал saveXML (), он все равно работает только с элементами, созданными с помощью DOM, а не с элементами, которые включены в loadHTML (), даже с «preserveWhiteSpace = false».

Если кто-то знает по-другому, я бы очень хотел узнать, как они заставили его работать.

Итак, у меня есть документ DOM, и я использую saveHTML () для вывода HTML. Поскольку он исходит от DOM, я знаю, что он действителен, нет необходимости "опрятно" или проверять его каким-либо образом.

Я просто ищу способ получить красиво отформатированный вывод из вывода, полученного из расширения DOM.

NB. Как вы уже догадались, я не хочу использовать расширение Tidy как: а) оно делает гораздо больше, чем оно мне тоже нужно (разметка уже действительна) и б) фактически вносит изменения в содержимое HTML (например, HTML 5 doctype и некоторые элементы).

Следовать за:

Хорошо, с помощью ответа ниже я выяснил, почему не работает расширение DOM. Хотя данный пример работает, он все еще не работает с моим кодом. С помощьюэто Комментарий Я обнаружил, что если у вас есть какие-либо текстовые узлы, где isWhitespaceInElementContent () имеет значение true, форматирование не будет применяться после этой точки. Это происходит независимо от того, является ли preserveWhiteSpace ложным. Решение состоит в том, чтобы удалить все эти узлы (хотя я не уверен, может ли это оказать негативное влияние на фактический контент).

Ответы на вопрос(3)

Ваш ответ на вопрос