Где я должен искать обратный обход дерева lxml.etree? - PullRequest
0 голосов
/ 30 октября 2011

Я не уверен в названии точного типа обхода, который я хочу сделать, но в основном я хочу читать элемент документа по элементу в обратном порядке от текущего элемента.

Метод iterdescendants(), похоже, ничего не делает, а метод iterancestors() не входит в подэлементы, он просто шаг за шагом, если вы понимаете, о чем я.

1 Ответ

0 голосов
/ 30 октября 2011

Может быть как то так?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...