我编写了一个小函数来在python中的XML树中的两个节点之间获取路径,如下所示:
def getPath(node, target):
if node == target:
if node.get('mnemo'):
return node.tag + ":" + node.get('mnemo')
elif node.get('repere'):
return node.tag + ":" + node.get('repere')
else:
return node.tag
for i in node.getchildren():
tail = getPath(i, target)
if tail:
if node.get('mnemo'):
return node.tag + ":" + node.get('mnemo') + "/" + tail
elif node.get('repere'):
return node.tag + ":" + node.get('repere') + "/" + tail
else:
return node.tag + "/" + tail # prepend node to path back from target
return None
我的问题是我的执行时间增加了近十倍。当然,这是正常的,这是一个递归函数,我的树来自200K行的XML。我不知道如何减少脚本的执行时间。
谢谢