Python元素树处理标签中的标签XML
问题描述:
我正在使用dailymed.nlm.nih.gov的xml标签。阅读与药物相关的禁忌时,我遇到了问题。我想要标签内的所有内容,但是一旦我点击内部标签,它就会切断。我试过遍历所有的子元素,但我能做的最好的是获得“警告”显示。 “无尿;对...过敏”失去了。如果有人知道使用解析器获取这些数据的方法,那将会有很大的帮助。 谢谢!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>
答
假设你正在使用像你需要使用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.
<<