移除XML文档中每个节点的所有属性
我有一个XML文档中的Node(元素)对象。我需要删除它以及它的所有子节点的所有属性。我该如何在Python中做到这一点?我正在使用xml.dom.minidom
。
3 个回答
0
用 PyQuery 来做这个事情非常简单,它有一个可以移除属性的方法:http://packages.python.org/pyquery/api.html#pyquery.pyquery.PyQuery.removeAttr
1
Rob的回答现在已经不适用了,如果你尝试从一个作为Iterator
使用的dict
中删除一个key
,会导致RunTimeError
错误。
所以,在尝试删除之前,你应该先复制一下这些键,像这样做就可以了。
keys = list(xml_node.attributes.keys()) if xml_node.attributes else []
for attribute in keys:
xml_node.removeAttribute(attribute)
4
大概是这样的:
dom = xml.dom.minidom.parseString(document)
for node in dom.childNodes:
if node.attributes:
for key in node.attributes.keys():
node.removeAttribute(key)