【发布时间】:2019-08-21 13:46:49
【问题描述】:
我想从 xml 文件中读取 PMID 和作者名字,示例文件如下所示
我得到了 PMID 和名字,但循环是 PMID 的次数,我想要 1 个 PMID 和相应的名字
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE PubmedArticleSet SYSTEM "http://dtd.nlm.nih.gov/ncbi/pubmed/out/pubmed_190101.dtd">
<PubmedArticleSet>
<PubmedArticle>
<MedlineCitation Status="MEDLINE" Owner="NLM">
<PMID Version="1">2844048</PMID>
<AuthorList CompleteYN="Y">
<Author ValidYN="Y">
<LastName>Guarner</LastName>
<ForeName>J</ForeName>
<Initials>J</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Cohen</LastName>
<ForeName>C</ForeName>
<Initials>C</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Mushi</LastName>
<ForeName>E</ForeName>
<Initials>F</Initials>
</Author>
</AuthorList>
</MedlineCitation>
</PubmedArticle>
<PubmedArticle>
<MedlineCitation Status="MEDLINE" Owner="NLM">
<PMID Version="1">123456</PMID>
<AuthorList CompleteYN="Y">
<Author ValidYN="Y">
<LastName>Smith</LastName>
<ForeName>C</ForeName>
<Initials>C</Initials>
</Author>
<Author ValidYN="Y">
<LastName>Jones</LastName>
<ForeName>E</ForeName>
<Initials>F</Initials>
</Author>
</AuthorList>
</MedlineCitation>
</PubmedArticle>
</PubmedArticleSet>
代码,我试过了
FN=[]
for pmid in root.iter('PMID'):
print(pmid.text)
for id in root.findall("./PubmedArticle/MedlineCitation/Article/AuthorList"):
for f in id.findall("./Author/ForeName"):
fn=f.text
x= '{},{}'.format(i, fn)
#print(x)
FN.append(x)
预期输出
PMID AUTHORS
2844048 'Guarner J J', 'Cohen C C'
【问题讨论】:
标签: python xml python-3.x python-2.7 xml-parsing