0
我不確定我想要做的遍歷的確切類型的名稱,但基本上我想按照與當前元素相反的順序從元素中讀取文檔元素。我應該在哪裏尋找lxml.etree的反向樹遍歷?
iterdescendants()
方法似乎沒有做任何事情,並且iterancestors()
方法不會進入子元素,它只是步進出來,如果你知道我的意思。
我不確定我想要做的遍歷的確切類型的名稱,但基本上我想按照與當前元素相反的順序從元素中讀取文檔元素。我應該在哪裏尋找lxml.etree的反向樹遍歷?
iterdescendants()
方法似乎沒有做任何事情,並且iterancestors()
方法不會進入子元素,它只是步進出來,如果你知道我的意思。
也許是這樣的?
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
這不起作用。我不認爲我原來解釋得太好,但基本上它應該是前面的,如果getprevious是None,它應該是getparent,如果getoarent是none,它應該返回None。我已經寫了一個簡單的函數來處理這個問題,但它似乎應該是內置的,我討厭重新發明輪子。 – kryptobs2000
你能提供一個例子嗎?輸入XML是什麼樣子以及按什麼順序遍歷元素? – millimoose