我有以下功能:
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/