PHP“ pretty print” HTML(不是Tidy)HTML

问题描述 投票:29回答:3

我正在PHP中使用DOM扩展来构建一些HTML文档,并且我希望输出的格式正确(带有新行和缩进),以便从我进行的许多测试中都可以读取它:] >

  1. “ formatOutput = true”与saveHTML()完全不兼容,只有saveXML()
  2. 即使我使用了saveXML(),它也仅适用于通过DOM创建的元素,而不适用于loadHTML()所包含的元素,即使使用“ preserveWhiteSpace = false”
  3. 如果有人有不同的了解,我真的很想知道他们是如何工作的。

所以,我有一个DOM文档,并且我正在使用saveHTML()输出HTML。由于它来自DOM,我知道它是有效的,因此无需“整理”或以任何方式对其进行验证。

我只是在寻找一种从DOM扩展收到的输出中获取格式正确的输出的方法。

NB。您可能已经猜到了,我不想使用Tidy扩展名,因为a)它所做的还远远超过了我的需要(标记已经有效),b)实际上对HTML内容进行了更改(例如HTML 5文档类型和一些元素)。

跟进:

[确定,借助下面的答案,我已经弄清了为什么DOM扩展无法正常工作。尽管给定的示例有效,但仍无法与我的代码一起使用。在this注释的帮助下,我发现,如果您有isWhitespaceInElementContent()为true的任何文本节点,则在该点之外都不会应用格式。无论preserveWhiteSpace是否为false,都会发生这种情况。解决方案是删除所有这些节点(尽管我不确定这是否会对实际内容产生不利影响)。

我正在PHP中使用DOM扩展来构建一些HTML文档,并且我希望输出的格式正确(带有新行和缩进),以便从我进行的许多测试中都可以读取...

php html format tidy
3个回答
30
投票

是的,HTML(others are also confused)似乎没有缩进。即使加载了代码,XML仍然有效。


0
投票

结果:


-1
投票

您可以将代码用于hl_tidy库的htmLawed功能。

© www.soinside.com 2019 - 2024. All rights reserved.