如何从 ElementTree 元素中删除属性?
How do I remove an attribute from an ElementTree Element?
我有一个用 xml.etree.ElementTree
创建的简单 XML 对象 <person>
。
<person name='John' age='21' />
我想修改 XML 元素以删除 age
属性。
<person name='John' />
我可以使用 .get("age")
, but using .remove("age")
访问属性导致类型错误。
import xml.etree.ElementTree as ElementTree
xml = ElementTree.Element('person', name="john", age="21")
xml.remove("age")
# TypeError: remove() argument must be xml.etree.ElementTree.Element, not str
According to the documentation,.remove()
只能用来移除子元素。似乎没有任何替代选项可用于删除属性。
如何从 xml.etree.ElementTree
对象中删除 XML 属性?
你可以试试del xml.attrib["age"]
import xml.etree.ElementTree as ElementTree
xml = ElementTree.Element('person', Name="john", age="21")
print(xml.items())
del xml.attrib["age"]
print(xml.items())
将产生:
[('Name', 'john'), ('age', '21')]
[('Name', 'john')]
使用xml.attrib.pop("age")
.
from xml.etree import ElementTree
xml = ElementTree.Element('person', name="john", age="21")
print(ElementTree.tostring(xml).decode())
xml.attrib.pop("age")
print(ElementTree.tostring(xml).decode())
输出:
<person name='John' age='21' />
<person name='John' />
解释:
ElementTree
的 attrib
成员作为 dict
对象实现,这意味着您可以在其上使用任何标准字典方法。
我有一个用 xml.etree.ElementTree
创建的简单 XML 对象 <person>
。
<person name='John' age='21' />
我想修改 XML 元素以删除 age
属性。
<person name='John' />
我可以使用 .get("age")
, but using .remove("age")
访问属性导致类型错误。
import xml.etree.ElementTree as ElementTree
xml = ElementTree.Element('person', name="john", age="21")
xml.remove("age")
# TypeError: remove() argument must be xml.etree.ElementTree.Element, not str
According to the documentation,.remove()
只能用来移除子元素。似乎没有任何替代选项可用于删除属性。
如何从 xml.etree.ElementTree
对象中删除 XML 属性?
你可以试试del xml.attrib["age"]
import xml.etree.ElementTree as ElementTree
xml = ElementTree.Element('person', Name="john", age="21")
print(xml.items())
del xml.attrib["age"]
print(xml.items())
将产生:
[('Name', 'john'), ('age', '21')]
[('Name', 'john')]
使用xml.attrib.pop("age")
.
from xml.etree import ElementTree
xml = ElementTree.Element('person', name="john", age="21")
print(ElementTree.tostring(xml).decode())
xml.attrib.pop("age")
print(ElementTree.tostring(xml).decode())
输出:
<person name='John' age='21' />
<person name='John' />
解释:
ElementTree
的 attrib
成员作为 dict
对象实现,这意味着您可以在其上使用任何标准字典方法。