我正在尝试使用lxml解析html模板并向html元素添加某些属性。我可以成功地这样做但是在通过
阅读文档时 template = etree.parse(view, etree.HTMLParser(remove_comments=True))
然后保存文档。我注意到我的模板包含额外的标记,使其成为有效的html模板。包装像
这样的模板 <div>
<span> A template </span>
</div>
使用html和body标签,将其转换为类似
的内容 <html>
<body>
<div>
<span> A template </span>
</div>
</body>
<html>
如何阅读我的“破碎”字样? html模板并阻止lxml添加这些额外的标签?
答案 0 :(得分:1)
根本不使用html解析器
使用html解析器:
>>> template = etree.fromstring('<div><span> A template </span></div>', etree.HTMLParser(remove_comments=True))
>>> etree.tostring(template)
'<html><body><div><span> A template </span></div></body></html>'
没有它:
>>> template = etree.fromstring('<div><span> A template </span></div>')
>>> etree.tostring(template)
'<div><span> A template </span></div>'