2013-02-10 3 views
0

나는 dailymed.nlm.nih.gov의 xml 레이블을 가지고 작업하고 있습니다. 약물과 관련된 금기 사항을 읽을 때 문제가 있습니다. 태그 안의 모든 내용을 원하지만 일단 안쪽 태그를 누르면 내용이 잘립니다. 모든 하위 요소를 반복 해 보았지만 최선의 방법은 "경고"를 표시하는 것입니다. "; anuria, hypersensitivity to ..."가 사라졌습니다. 누구든지 파서를 사용하여이 데이터를 얻는 방법을 알고 있다면 많은 도움이됩니다. 감사합니다.Python 엘리먼트 트리 태그 내의 태그 처리하기 XML

<component> 
     <section ID="LINK_8e9e0719-efa5-451c-bea3-d547298ad0a1"> 
      <id root="8e9e0719-efa5-451c-bea3-d547298ad0a1"/> 
      <code code="34070-3" codeSystem="2.16.840.1.113883.6.1" displayName="CONTRAINDICATIONS SECTION"/> 
      <title>CONTRAINDICATIONS</title> 
      <text> 
       <paragraph>Atenolol and chlorthalidone tablets are contraindicated in patients with: sinus bradycardia; heart block greater than first degree; cardiogenic shock; overt cardiac failure (see<content styleCode="bold"> 
        <linkHtml href="#LINK_0df2629f-13c7-4b14-8664-475c32377c68">WARNINGS</linkHtml> 
       </content>); anuria; hypersensitivity to this product or to sulfonamide-derived drugs.</paragraph> 
      </text> 
      <effectiveTime value="20101001"/> 
     </section> 
    </component> 

답변

1

당신은 당신이 자식 요소의 모든 텍스트를 얻을 것이다 ET.tostring를 사용할 필요가 다음과 같은 것을 사용하고 가정하면.

import xml.etree.ElementTree as ET 
txt = """ 
<component> 
<section ID="LINK_8e9e0719-efa5-451c-bea3-d547298ad0a1"> 
    <id root="8e9e0719-efa5-451c-bea3-d547298ad0a1"/> 
    <code code="34070-3" codeSystem="2.16.840.1.113883.6.1" displayName="CONTRAINDICATIONS SECTION"/ 
    <title>CONTRAINDICATIONS</title> 
    <text> 
    <paragraph>Atenolol and chlorthalidone tablets are contraindicated in patients with: sinus brady 
     <linkHtml href="#LINK_0df2629f-13c7-4b14-8664-475c32377c68">WARNINGS</linkHtml> 
      </content>); anuria; hypersensitivity to this product or to sulfonamide-derived drugs.</ 
    </text> 
    <effectiveTime value="20101001"/> 
</section> 
</component>""" 

root = ET.fromstring(txt) 

for e in root.iter('text'): 
    print ">>" 
    print ET.tostring(e, method="text") 
    print "<<" 

>> 

    Atenolol and chlorthalidone tablets are contraindicated in patients with: sinus bradycardia; heart block greater than first degree; cardiogenic shock; overt cardiac failure (see 
     WARNINGS 
      ); anuria; hypersensitivity to this product or to sulfonamide-derived drugs. 


<< 
를 제공