删除具有 minidom 的节点

deleting a node with minidom

我有以下功能:

def removeNodes(mydom, name):
    nodeList = mydom.getElementsByTagName('option')
    # in php removing node has to be done in reverse order or it changes the
    #  nodeList. I assume same is true with python minidom
    for node in reversed(nodeList):
        if node.hasAttribute('name') and node.getAttribute('name') == name:
            parent = node.parentNode()
            parent.removeChild(node)

mydom 是一个 minidom 对象 当匹配(名称属性与函数的名称参数相同)并且需要删除节点时,出现以下异常:

Traceback (most recent call last):
  File "./iBooksOptions.py", line 163, in <module>
    main() 
  File "./iBooksOptions.py", line 160, in main
    modifyMetaFile(xmlpath)
  File "./iBooksOptions.py", line 79, in modifyMetaFile
    removeNodes(mydom, 'specified-fonts')
  File "./iBooksOptions.py", line 14, in removeNodes
    parent = node.parentNode()
TypeError: 'Element' object is not callable

它似乎不喜欢我通过 node.parentNode() 定义父对象,但这似乎是 minidom 文档所说的引用它的方式。我很困惑。帮忙?

我通常在 PHP 中编写代码,使用 Python 3.6 进行某些命令行处理 XML 文件。

应将具有匹配名称属性的节点从其父节点中删除。

问题是 node.parentNode() - 丢失 () 所以它只是 node.parentNode 并且按预期工作。