from lxml import etree
html = etree.Element("html")
body = etree.SubElement(html, "body")
body.text = "TEXT"
body.set("p style", "color:red")
print(etree.tostring(html))
给我错误:值错误:无效的属性名称 u'p 样式'
在 XML 中不能有带有空格的属性,这是 lxml
和 etree
的用途。XML 规范在此处说明了什么是有效的属性名称。
如果您正在尝试实现此目的:
<html><body p style="color:red">TEXT</body></html>
你不能在 XML 中这样做。你可以在HTML中做类似的事情:空属性。有关详细信息,请参阅 HTML5 规范。但是您不会使用上面编写的代码来获得该结果。
如果您尝试获得以下结果(似乎更有可能):
<html><body><p style="color:red">TEXT</p></body></html>
然后很容易。
from lxml import etree
html = etree.Element("html")
body = etree.SubElement(html, "body")
p = etree.subElement(body, "p")
p.text = "TEXT"
p.set("style", "color:red")
print(etree.tostring(html))