2011-11-15 56 views
0

我一直在尋找一段時間。有沒有辦法根據標籤的文本值直接檢索一個孩子?python ElementTree找到具有特定文本值的子項

例如:

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

而且說我要檢索的孩子是他的「C」的文本價值==學家有沒有辦法做到這一點,而不是讓所有的「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)?

相關問題