我有以下功能:
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对象,当存在匹配(name属性与function的name参数相同)并且需要删除节点时,我会得到以下异常:
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编写代码,使用Python3.6对XML文件进行一些命令行操作。
具有匹配name属性的节点应从其父节点中删除。
发布于 2019-09-18 14:52:34
问题是node.parentNode() -丢掉(),所以它只是node.parentNode,它按预期工作。
https://stackoverflow.com/questions/57986245
复制相似问题