etreepython两节点间getPath的优化

etreepython两节点间getPath的优化,python,xml,recursion,elementtree,Python,Xml,Recursion,Elementtree,我用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.ge

我用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。我不知道如何缩短脚本的执行时间


谢谢

我们无法运行您的代码(顺便说一句,代码缩进严重)。请尝试提供一个.搜索
pytonxml
模块