2012-06-18 4 views
0

를 사용하여 태그에서 텍스트를 추출하는 방법 : 나는 특정 태그에서 텍스트를 추출 할 필요가내가 XML 파일 다음 한 ElementTree

<class id="1" name="good/bad"> 
    <verb> 
     <token>like</token> 
     <token>feel</token> 
    </verb> 
    <mess>This is <sugg>not</sugg> text</mess> 
    <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id> 
    <id type="correct">I'm glad to see you.</id> 
</class> 

. http://effbot.org은 매우 드문 예제이며 일반적으로 설명서가 좋지 않습니다. 어딘가 다른 좋은 예가 있을까요? 그리고 동일한 태그 (토큰)의 텍스트를 별도의 엔터티로 처리하는 방법은 무엇입니까? 미리 감사드립니다!

(like) feel > not #This is not text 

답변

0

난 당신이 <mess> 요소의 내용과는 원하는 무엇에 명확하지 않다 다음과 같이 결과는 약해야한다. <verb> 요소의 어린이를위한
,이 시도 :

tree, id_map = ET.XMLID('''<class id="1" name="good/bad"> 
    <verb> 
     <token>like</token> 
     <token>feel</token> 
    </verb> 
    <mess>This is <sugg>not</sugg> text</mess> 
    <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id> 
    <id type="correct">I'm glad to see you.</id> 
</class>''') 
elems = id_map['1'].find('verb') 
verbs = [verb.text for verb in elems] 
+0

내가 얻을하고자 :


파일이 큰 경우

import xml.etree.ElementTree as ET the_tree = ET.fromstring('''<class id="1" name="good/bad"> <verb> <token>like</token> <token>feel</token> </verb> <mess>This is <sugg>not</sugg> text</mess> <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id> <id type="correct">I'm glad to see you.</id> </class>''') elems = the_tree.find('./verb').getchildren() verbs = [verb.text for verb in elems] # -> ['like', 'feel'] 
는, 아마도 당신이 접근 요소의 다른 방법을 선호 두 텍스트는 분리 된 객체로 나타납니다. – user1464922

+0

확인. 위의 코드 샘플은 전혀 도움이됩니까? – bernie

+0

예. 고맙습니다. 그러나 나는 독립적 인 사물과 같고 느끼기를 원합니다. 그게 문제 야. – user1464922