本文配合手把手式介绍 ADNI 影像数据下载使用。
仅给出了如下读取XML文件中的project和subject信息的部分代码,读取其他内容采用一样的写法即可。
只适合自己批量读取一下XML文件,所以凑合看即可。
可以循环遍历所有subject的XML文件,每次调用一下以下函数,然后存到一个list中,再用pandas保存到csv中。
代码如下:
def rxml(file):
DOMTree = xml.dom.minidom.parse(file)
root = DOMTree.documentElement
# project
project = root.getElementsByTagName("project")
proID = project[0].getElementsByTagName("projectIdentifier")[0].childNodes[0].data if len(project[0].getElementsByTagName("projectIdentifier")) else ""
ProDes = project[0].getElementsByTagName("projectDescription")[0].childNodes[0].data if len(project[0].getElementsByTagName("projectDescription")) else ""
site = project[0].getElementsByTagName("siteKey")[0].childNodes[0].data if len(project[0].getElementsByTagName("siteKey")) else ""
# subject
subject = project[0].getElementsByTagName("subject")
subID = subject[0].getElementsByTagName("subjectIdentifier")[0].childNodes[0].data if len(subject[0].getElementsByTagName("subjectIdentifier")) else ""
group = subject[0].getElementsByTagName("researchGroup")[0].childNodes[0].data if len(subject[0].getElementsByTagName("researchGroup")) else ""
sex = subject[0].getElementsByTagName("subjectSex")[0].childNodes[0].data if len(subject[0].getElementsByTagName("subjectSex")) else ""
return proID, ProDes, site, subID, group, sex