Python:遍历树添加html列表(ul)

时间:2010-08-13 07:16:01

标签: python

我有这个遍历树结构的python代码。我正在尝试将ul和li标签添加到函数中,但我不是很成功。我虽然能够保持代码干净而不需要很多条件,但现在我不再那么肯定了。

def findNodes(nodes):

    def traverse(ns):
        for child in ns:
            traverse.level += 1
            traverse(child.Children)
            traverse.level -= 1

    traverse.level = 1
    traverse(nodes)

这是我遍历树结构的基本功能。最终结果应该是嵌套的ul和li标签。如果需要我可以发布我自己的不工作的例子,但它们可能有点令人困惑。

更新:带参数的示例

def findNodes(nodes):

    def traverse(ns, level):
        for child in ns:
            level += 1
            traverse(child.Children, level)
            level -= 1

    traverse(nodes, 1)

1 个答案:

答案 0 :(得分:2)

我删除了未使用的level参数。添加任何类型的文本都留给读者练习。

def findNodes(nodes):
    def traverse(ns):
        if not ns:
            return ''

        ret = ['<ul>']
        for child in ns:
            ret.extend(['<li>', traverse(child.Children), '</li>'])
        ret.append('</ul>')
        return ''.join(ret)

    return traverse(nodes)
相关问题