2016-07-07 14 views
0

複数のXMLファイルを列/表に解析しようとしていますが、XMLの中にはデータが異なり、重要ではないものもあります。Pythonを使用してxmlデータを列に解析する

すなわち(XMLデータ):

<setId root="ABD6ECF0-DC8E"/> 
<component> 
      <section> 
       <id root="F08C6A14-8165-458A-BDC8-0B5878EB814D"/> 
       <code code="34069-5" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="HOW SUPPLIED SECTION"/> 
       <title mediaType="text/x-hl7-title+xml">HOW SUPPLIED</title> 
       <text> 
        <paragraph>RENESE (polythiazide) Tablets are available as:</paragraph> 
        <paragraph>1 mg white, scored tablets in bottles of 100 (NDC 0069-3750-66).</paragraph> 
        <paragraph>2 mg yellow, scored tablets in bottles of 100 (NDC 0069-3760-66).</paragraph> 
        <paragraph>4 mg white, scored tablets in bottles of 100 (NDC 0069-3770-66).</paragraph> 
       </text> 
       <effectiveTime value="20051214"/> 
      </section> 
     </component> 

<component> 
      <section> 
       <id root="42CB916B-BB58-44A0-B8D2-89B4B27F04DF"/> 
       <code code="34089-3" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="DESCRIPTION SECTION"/> 
       <title mediaType="text/x-hl7-title+xml">DESCRIPTION</title> 
       <text> 
        <paragraph>Renese<sup>&#174;</sup> is designated generically as polythiazide, and chemically as 2<content styleCode="italics">H</content>-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-2-methyl-3-[[(2,2,2-trifluoroethyl)thio]methyl]-, 1,1-dioxide. It is a white crystalline substance, insoluble in water but readily soluble in alkaline solution.</paragraph> 
        <paragraph>Inert Ingredients: dibasic calcium phosphate; lactose; magnesium stearate; polyethylene glycol; sodium lauryl sulfate; starch; vanillin. The 2 mg tablets also contain: Yellow 6; Yellow 10.</paragraph> 
       </text> 
       <effectiveTime value="20051214"/> 
      </section> 
     </component> 
     <component> 
      <section> 

         <manufacturedProduct> 
         <manufacturedMedicine> 
          <code code="0069-3750" codeSystem="2.16.840.1.113883.6.69" codeSystemName="FDA" displayName="NDC"/> 
          <name>Renese</name> 
          <formCode code="C42998" codeSystem="2.16.840.1.113883.3.26.1.1" displayName="TABLET"/> 
         <manufacturedProduct/> 
         <manufacturedMedicine/> 

私は、最終的な結果は、(SETID、説明のように、名前が列名である)このようになりたい:

をSETID

ABD6ECF0-DC8E

説明

Reneseは
ポリチアジドとして一般的に指定され、化学的に-2H-1,2,4-ベンゾチアジア -7-スルホンアミド、6-クロロ 3,4-ジヒドロ-2-メチル-3 - [[ (2,2,2-トリフルオロエチル)チオ]メチル] - 、1,1-ジオキシド。 白色結晶性物質で、水に不溶であるが、アルカリ溶液に容易に可溶性である。 。

Renese

答えて

0

私が正しく理解していれば、あなたはこのサイトからダウンロードしたXMLを解析しようとしている:実際に、それは通常のXMLではありません、それはHL7タイプhttps://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=abd6ecf0-dc8e-41de-89f2-1e36ed9d6535

だと特別に(バージョン3 {urn:hl7-org:v3})のいずれかです。

これをすばやく処理するには、かなり良い仕事をするオープンソースツール(Mirth:https://www.mirth.com/)があります(Iguana:http://www.interfaceware.com/iguana.html、商用)。 ところで、あなたの記事をありがとう、それは私に誕生ツールをテストする機会を与えてくれてありがとう。

実際には、xmlをHL7V3形式に変換して必要な情報を取得する必要があります。以下は、あなたのxmlに使用したチャネルと出力するチャネルの例です(https://www.dropbox.com/sh/ibosv56m0monmcj/AACL7t6ZKOi4P-Bwpi75KhUXa?dl=0)。

は、詳細については、私はあなたがここを見ていることを示唆:

あなたのpythonを使用するために必要なすべての後、あなたはHL7(http://hl7apy.org/)とFIHR(https://pypi.python.org/pypi/fhir/0.0.4)パッケージに見ることができた場合Convert XML to HL7 messages using Mirth Connect

通常のXMLをPythonで解析するには、ここにいくつかの方法があります:How do I parse XML in Python?(私はfunsoupとlxmlを個人的に楽しんでいます)。

希望に応じることができます。 幸運

関連する問題