0

python - 如何在python中将字符串中的所有HTML标签和属性转换为小写?不应更改其他任何内容,例如不应更改属性值、不缩进、换行等。

对不起,如果它太明显:)

4

2 回答 2

2

我不会说这是不可能的,但这是一个非常高的要求。原因是 HTML 解析器通常不会尝试保留与 HTML 无关的字符,例如行尾,但是除了 HTML 解析器之外的任何东西都不会很好地根据格式。

如果您真的需要这样做并且做得很好,我会考虑剖析现有的 python HTML 解析器并根据您的需要对其进行修改。这是一个相当高级的编程项目。最好认真考虑为什么需要这样做,以及这是否是正确的做法。

编辑:另一个问题是,如果不检查 HTML 的有效性并将其改造成有效,或者因无效的 HTML 而窒息,就不可能真正解析 HTML。因此,如果您的 HTML 可能存在有效性问题,那么您的结果是未定义的。例如,如果输入包含一个非常无效的标签,例如<font="courier">,那么在本练习中,它是否会被视为 HTML 标签,或者只是一个解析器终止字符的字符串?同样,在文档中的错误位置有一个看起来有效的标签。

于 2012-09-06T12:15:00.200 回答
0

据我所知,这不可能是一个非常难以实现的结果(至少以任何可靠的方式)。

通过将 HTML 解析为树并将其转换回字符串的本质,您将看到对 HTML 标记所做的更改。

PS。不建议使用正则表达式解决 HTML 解析问题:https ://stackoverflow.com/a/1732454/311220

于 2012-09-06T12:05:49.410 回答