python - 使用 minidom 删除节点

标签 python 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 并且它按预期工作.

关于python - 使用 minidom 删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986245/

相关文章:

Python异常文件排序

python - 多维Python数组的动态访问

python - 从 python2 转换为 python3 时处理 encode()

python - 监视数据的 TCP/IP 连接

python - 使用 xml.dom.minidom 中的 parseString 解析 XML 文件效率低下?

python - Python 中的嵌套 XML 标签

python - Flask 函数返回因主线程错误而无效

python - 忽略 Python 中的 XML 错误

python - 我无法在 PyCharm 中导入 xml.dom.minidom。我可以尝试什么?

python - 如何使用 minidom + python 更改 XML 中的元素名称