Существует множество способов анализа и обработки файлов HTML4 с использованием многих технологий. Но я не могу найти подходящий, который сохранит этот файл DOM снова.Как загрузить и проанализировать HTML без изменения его содержимого
Я хочу, чтобы иметь возможность загружать HTML-файл в DOM, изменять одну мелочь (например, значение атрибута), сохранять DOM в файл снова и при изменении исходного файла и созданного файла, я хочу, чтобы они быть полностью идентичными, за исключением небольших изменений.
Эта задача совершенно не проблема при работе с XML и подходящими библиотеками XML, но когда дело доходит до HTML, возникает несколько проблем: пробелы, такие как углубления или линейные перерывы, теряются или вставлены, самозакрывающиеся начальные теги (такие как <link...>
) появляются как <link.../>
и/или содержимое секций CDATA (например, между <script>
и </script>
) обернуто в <![CDATA[
]]>
. Эти вещи имеют решающее значение в моем случае.
В каком режиме можно перемещаться, перемещаться, манипулировать и сохранять HTML без каких-либо недостатков, описанных выше, что наиболее важно, если бы не были изменены текстовые узлы?
Многие сайты, которые в настоящее время разрабатываются (или разработаны за последние несколько лет), используют HTML5. Вас беспокоит только HTML5 или вы хотите обрабатывать HTML4, XHTML и/или микроформаты? – devstruck
Если «небольшое изменение» действительно является небольшим изменением, почему бы не прочитать файл в строковой переменной, используйте предоставленные языком функции замены строк и/или регулярные выражения. – tiblu
@tiblu В зависимости от требований здесь, что-то, что тривиально с парсером DOM (найти атрибут X на третьем элементе Y, содержащимся в Z), может быть абсолютным кошмаром со стандартными функциями string/regex. –