我正在使用 lxml.html 生成一些 HTML。我想将我的最终结果漂亮地打印(带缩进)到一个 html 文件中。我怎么做?
这是我到目前为止所尝试和得到的
import lxml.html as lh
from lxml.html import builder as E
sliderRoot=lh.Element("div", E.CLASS("scroll"), style="overflow-x: hidden; overflow-y: hidden;")
scrollContainer=lh.Element("div", E.CLASS("scrollContainer"), style="width: 4340px;")
sliderRoot.append(scrollContainer)
print lh.tostring(sliderRoot, pretty_print = True, method="html")
如您所见,我正在使用 pretty_print=True
属性。我认为这会给出缩进代码,但它并没有真正帮助。这是输出:
<div style="overflow-x: hidden; overflow-y: hidden;" class="scroll"><div style="width: 4340px;" class="scrollContainer"></div></div>
原文由 bcosynot 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最终直接使用了 BeautifulSoup 。这是 lxml.html.soupparser 用来解析 HTML 的东西。
BeautifulSoup 有一个 prettify 方法,它完全按照它说的做。它用适当的缩进和一切美化 HTML。
BeautifulSoup 不会修复 HTML,因此损坏的代码会一直损坏。但在这种情况下,由于代码是由 lxml 生成的,因此 HTML 代码至少在语义上应该是正确的。
在我的问题给出的例子中,我将不得不这样做: