2011-11-15 21 views
0

私はしばらく検索してきました。タグのテキスト値に基づいて子を直接取得する方法はありますか?例えばpython ElementTree特定のテキスト値を持つ子を見つける

<a> 
    <b> 
     <c>h</c> 
    </b> 
    <b> 
     <c>j</c> 
    </b> 
</a> 

そして、私がすること、その "C" のテキスト値== jの子を取得したいと言います。すべての "b"子を取得し、それらをループしてc値をチェックする必要以外に、これを行う方法はありますか?

答えて

4

あなたがlxmlを使用している場合は、この答えは関連性があるXPath式//c[text()='j']

import lxml.etree as et 

doc = ''' 
<a> 
    <b> 
     <c>h</c> 
    </b> 
    <b> 
     <c>j</c> 
    </b> 
</a> 
''' 

tree = et.fromstring(doc) 

tree.xpath("https://stackoverflow.com/a/b/c[text()='j']") 

を使用することができます。How do I match contents of an element in XPath (lxml)?

関連する問題