当前位置: 首页 > 面试题库 >

如何使用缩进将HTML漂亮地打印到文件

严峰
2023-03-14
问题内容

我正在使用lxml.html生成一些HTML。我想将最终结果漂亮地打印(带有缩进)到html文件中。我怎么做?

这是我迄今为止一直尝试并得到的(我对Python和lxml还是比较陌生的):

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>


问题答案:

我最终直接使用BeautifulSoup。这就是lxml.html.soupparser用于解析HTML的东西。

BeautifulSoup有一个美化方法,可以完全按照其声明的方式进行。它使用适当的缩进和所有内容修饰HTML。

BeautifulSoup不会修复HTML,因此损坏的代码仍然损坏。但是在这种情况下,由于代码是由lxml生成的,因此HTML代码至少应在语义上正确。

在我的问题给出的示例中,我将必须这样做:

from BeautifulSoup import BeautifulSoup as bs
root = lh.tostring(sliderRoot) #convert the generated HTML to a string
soup = bs(root)                #make BeautifulSoup
prettyHTML = soup.prettify()   #prettify the html


 类似资料:
  • 问题内容: 有人知道在Go中漂亮地打印JSON输出的简单方法吗? 库存的 http://golang.org/pkg/encoding/json/ 软件包似乎不包含此功能 (编辑:确实如此,请参见接受的答案),而且快速的Google并没有发现任何明显的问题。 我正在寻找的用途既可以打印出JSON 的结果,又可以从任何地方格式化一个充满JSON的字符串,因此出于调试目的而更易于阅读。 问题答案: 通

  • 问题内容: 这似乎是一个已解决的问题,但我无法找到解决方案。 基本上,我读取了一个JSON文件,更改了密钥,然后将新的JSON写回到同一文件。都可以,但是我松了JSON格式,所以,而不是: 我懂了 Node.js中是否可以将格式良好的JSON写入文件? 问题答案: 的第三个参数定义用于漂亮打印的空白插入。它可以是字符串或数字(空格数)。Node可以使用写入您的文件系统。例: 请参阅MDN上的JSO

  • 有人知道一种简单的方法可以在Go中漂亮地打印JSON输出吗? 股票 http://golang.org/pkg/encoding/json/软件包似乎不包含此功能 (编辑:是的,请参见公认的答案),快速的谷歌搜索不会发现任何明显的问题。 我正在寻找的用法都是漂亮的打印json的结果。封送,然后格式化来自任何地方的充满JSON的字符串,因此更容易出于调试目的进行读取。

  • 问题内容: 用于类的项目涉及解析Twitter JSON数据。我正在获取数据并将其设置为文件没有太大的麻烦,但这全都在一行中。这对我要进行的数据操作很好,但是文件很难读取,而且我无法很好地对其进行检查,这使得为数据操作编写代码非常困难。 有谁知道如何在Python中执行此操作(即不使用命令行工具,但我无法使用它)?到目前为止,这是我的代码: 注意, 我很高兴有人向我指向simplejson文档等,

  • 问题内容: Go中有类似Ruby的东西吗? 例如,在Ruby中,您可以编写: 输出将是: 我能找到的最接近的东西是 问题答案: 如果您的目标是避免导入第三方软件包,则另一个选择是使用json.MarshalIndent: 输出: 工作示例:http : //play.golang.org/p/SNdn7DsBjy

  • 我正在寻找一种漂亮的方法来打印地图。 <代码>贴图。toString()给我: