使用' class'创建元素属性抛出语法错误

时间:2015-03-22 01:51:20

标签: python lxml

当我尝试使用lxml模块执行此操作时:

div = etree.SubElement(body, "div", class="hmi")

我得到了:

user@localhost:metk $ sudo python mbscan.py -r 192.168.0.0/24 --hmi
  File "mbscan.py", line 481
    div = etree.SubElement(body, "div", class="hmi")
                                            ^
SyntaxError: invalid syntax

因为class是为Python保留的关键字以供其他用途使用。 IE这个:

div = etree.SubElement(body, "div", hello="hmi")

工作正常。

我知道在html中专门针对lxml制作了另一个引擎,但为了让我的xmlhtml报告生成器尽可能相似,我和#39 ;我想知道这里是否还有另一种解决方法?

如何在不破坏Python的情况下创建具有xml属性的class代码?

1 个答案:

答案 0 :(得分:2)

定义属性字典并将其作为attrib参数传递。

例如:

>>> from lxml.html import Element, tostring
>>> 
>>> div = Element("div", attrib={"class": "hmi"})
>>> 
>>> print(tostring(div))
<div class="hmi"></div>

请注意,我在这里使用lxml.html,但同样的想法适用于etree