我应该在哪里寻找lxml.etree的反向树遍历?

时间:2011-10-30 03:06:26

标签: python iterator lxml tree-traversal

我不确定我想要做的遍历的确切类型的名称,但基本上我想从当前元素以相反的顺序逐个元素地读取元素。

iterdescendants()方法似乎没有做任何事情,iterancestors()方法不会进入子元素,如果您知道我的意思,它只是向上和向外走。“ p>

1 个答案:

答案 0 :(得分:0)

也许是这样的?

import lxml.etree as et

xmldata = """
<data>
    <mango>1</mango>
    <kiwi>2</kiwi>
    <banana>3</banana>
    <plum>4</plum>
</data>
"""

tree = et.fromstring(xmldata)

el = tree.find('plum')
print el.text

while True:
    el = el.getprevious()
    if el is None:
        break
    print el.text

<强>结果:

4
3
2
1