2011-02-04 12 views
0

子要素の「レベル」の数を調べようとして問題があります。たとえば、要素が美しいスープにいくつのレベルの子要素があるかを調べる

<div id="first"> 
<div id="second"> 
    <div id="third"> 
    <div id="fourth"> 
    <div id="fifth"> 
    </div> 
    </div> 
    </div> 
</div> 
<div id="second2"> 
</div> 
</div> 

このコードでは、最初のIDを持つdivは4レベルの子要素を持ちます。

基本的に、要素に2つ以下の子レベルがあるかどうかを調べる必要があります。

+0

ちょうどそれを理解するか、内容を取得しますか? – KyleWpppd

+0

@KyleWpppdはそれを理解するだけで、実際のTag要素を持っているのではないでしょうが、必ずしも必要ではありません。 – Joshkunz

答えて

0

xml.etree.ElementTreeを使用した例です。

import xml.etree.ElementTree as et 

def height(branch): 
    if len(branch) == 0: 
     return 0 
    else: 
     return max([height(child) for child in branch.getchildren()])+1 

tree = et.fromstring(text) 
print height(tree) 
+0

私はBeautifulSoupを使ってみましたが、なんらかの理由でツリートラバーサル関数(つまり 'findChildren()')が期待通りに動作しません... – Kimvais

関連する問題