创建具有 'class' 属性的元素会引发语法错误
Creating an element with 'class' attribute throws a syntax error
当我尝试使用 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 保留的关键字以供其他用途。即:
div = etree.SubElement(body, "div", hello="hmi")
工作正常。
我知道 lxml
中有另一个专门为 html
制作的引擎,但为了让我的 xml
和 html
报告生成器尽可能相似,我我想知道这里是否没有其他解决方法?
如何创建一个带有 class
属性的 xml
标签而不打乱 Python?
定义属性字典并将其作为 attrib
参数传递。
例如:
>>> from lxml.html import Element, tostring
>>>
>>> div = Element("div", attrib={"class": "hmi"})
>>>
>>> print(tostring(div))
<div class="hmi"></div>
请注意,我在这里使用 lxml.html
,但同样的想法也适用于 etree
。
当我尝试使用 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 保留的关键字以供其他用途。即:
div = etree.SubElement(body, "div", hello="hmi")
工作正常。
我知道 lxml
中有另一个专门为 html
制作的引擎,但为了让我的 xml
和 html
报告生成器尽可能相似,我我想知道这里是否没有其他解决方法?
如何创建一个带有 class
属性的 xml
标签而不打乱 Python?
定义属性字典并将其作为 attrib
参数传递。
例如:
>>> from lxml.html import Element, tostring
>>>
>>> div = Element("div", attrib={"class": "hmi"})
>>>
>>> print(tostring(div))
<div class="hmi"></div>
请注意,我在这里使用 lxml.html
,但同样的想法也适用于 etree
。