使用Python解析ICD10 XML文件:如何获取inclusionTerm节点下的全部note元素内容
搞定ICD10 XML中获取所有inclusionTerm下note内容的问题
嘿,刚好碰到过类似的XML解析场景!你现在的代码只能拿到第一个<note>文本,是因为find('note')方法只会返回第一个匹配到的元素。要把<inclusionTerm>下的所有<note>内容都获取到,只需要换成findall()方法遍历所有匹配项就行,下面是具体的修改方案:
修改后的完整代码
from xml.etree import ElementTree as ET root = ET.parse('cut.xml') diag = root.find(".//*[name='A00.0']") inclusionTerm = diag.find('inclusionTerm') if inclusionTerm is not None: # 获取inclusionTerm下的所有note元素 all_notes = inclusionTerm.findall('note') print('所有Inclusion Term内容:') for idx, note in enumerate(all_notes, 1): print(f'{idx}. {note.text}')
关键改动说明
- 用
inclusionTerm.findall('note')替代原来的find('note'):findall()会返回当前节点下所有符合条件的子元素,返回结果是一个可遍历的列表。 - 遍历这个列表就能逐个取出每个
<note>的文本内容,不管有多少个note都能全部获取到。
运行效果
执行这段代码后,你会得到如下输出:
所有Inclusion Term内容: 1. Classical cholera 2. Classical cholera again
这样就完美解决了只能获取第一个note的问题啦!
内容的提问来源于stack exchange,提问作者Vioris
相关产品推荐
相关产品推荐

