如何在python中将字符串中的所有HTML标记和属性转换为小写?其他任何东西都不应该改变,例如不应更改属性值,不能缩进,换行等。
很抱歉,如果它太明显了:)
答案 0 :(得分:2)
我不会说这是不可能的,但这是一个非常高的命令。原因是HTML解析器通常不会尝试保留与HTML无关的字符,例如行结尾,但除了HTML解析器以外的任何其他内容都不会很好地根据严格的定义来判断标记是什么或不是标记。格式。
如果您确实需要这样做并且做得好,我会考虑剖析现有的python HTML解析器并根据您的需要进行修改。这是一个相当高级的编程项目。最好认真考虑为什么你需要这样做,如果这是完全正确的事情。
编辑:另一个问题是,如果不检查HTML的有效性并将其重写为有效,或者对无效的HTML进行阻塞,则无法解析HTML。因此,如果您的HTML可能存在有效性问题,则结果未定义。例如,如果输入包含一个非常无效的标记,如<font="courier">
,那么为了本练习的目的,它会被视为HTML标记,还是仅仅是一串解析器杀死字符?同样,在文档中的错误位置使用有效标记。
答案 1 :(得分:0)
据我所知,这是不可能的将是一个非常难以实现的结果(至少以任何可靠的方式)。
通过将HTML解析为树并将其转换回字符串的本质,您将看到对HTML标记所做的更改。
PS。建议不要使用正则表达式解决HTML解析问题:https://stackoverflow.com/a/1732454/311220