2011-10-30 18 views
0

私はしたい正確なトラバーサルタイプの名前はわかりませんが、基本的には、現在の要素と逆の順序で要素ごとにドキュメントを読みたいと思っています。lxml.etreeの逆ツリートラバーサルをどこで調べるべきですか?

iterdescendants()メソッドは何もしていないようで、iterancestors()メソッドはサブ要素には入っていません。

+0

は、あなたが例を提供することはできますか?入力XMLはどんな順番でどのような順序で要素が横断されますか? – millimoose

答えて

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 
+0

それは動作しません。私は元々あまり説明していないと思っていますが、基本的にgetpreviousを返す必要があります。getpreviousがNoneの場合はgetparentが必要です。私はこれを処理する簡単な関数を書いたことがありますが、それは組み込むべきもののように思え、私はホイールの再発明が嫌いです。 – kryptobs2000

関連する問題