移除XML文档中每个节点的所有属性

1 投票
3 回答
2559 浏览
提问于 2025-04-17 06:30

我有一个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)

撰写回答