2011-11-15 2 views
0

나는 잠시 동안 검색을 해왔다. 태그의 텍스트 값을 기반으로 자식을 직접 가져 오는 방법이 있습니까?python ElementTree 특정 텍스트 값을 가진 자식 찾기

예를 들어

:

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

을 그리고 내가 아이가 누구의 "C"텍스트 값 == J 될 검색하고 싶은 말은. 모든 "b"자를 갖지 않고 반복하고 C 값을 확인하는 것 이외의 다른 방법이 있습니까?

답변

4

당신이 XPath 식을 사용할 수 있습니다 lxml 사용하는 경우 //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)?

관련 문제