当我尝试使用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
制作了另一个引擎,但为了让我的xml
和html
报告生成器尽可能相似,我和#39 ;我想知道这里是否还有另一种解决方法?
如何在不破坏Python的情况下创建具有xml
属性的class
代码?
答案 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
。