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))
给我错误:ValueError:无效的属性名称u' p style'
答案 0 :(得分:1)
您不能在XML中拥有包含空格的属性,这是lxml
和etree
的用途。 XML规范说明了有效的属性名称是here。
如果你想要实现这个目标:
<html><body p style="color:red">TEXT</body></html>
你不能用XML做到这一点。您可以在HTML中执行类似的操作:空属性。有关详细信息,请参阅the HTML5 specification。但是你不会使用上面写的那种代码来获得结果。
如果您想获得以下结果(似乎更有可能):
<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))