У меня есть XML-файл:получение данных XML в Python
<uniprot created="2010-12-20">
<entry dataset="abc">
<references id="1">
<title>first references</title>
<author>
<person name="Mr. A"/>
<person name="Mr. B"/>
<person name="Mr. C"/>
</author>
<scope> scope 1 for id 1 </scope>
<scope> scope 2 for id 1 </scope>
<scope> scope 2 for id 1 </scope>
</references>
<references id="2">
<title>Second references</title>
<author>
<person name="Mr. D"/>
<person name="Mr. E"/>
<person name="Mr. F"/>
</author>
<scope> scope 1 for id 2 </scope>
<scope> scope 2 for id 2 </scope>
<scope> scope 3 for id 2 </scope>
</references>
<references id="3">
<title>third references</title>
<author>
<person name="Mr. G"/>
<person name="Mr. H"/>
<person name="Mr. I"/>
</author>
<scope> scope 1 for id 3 </scope>
<scope> scope 2 for id 3 </scope>
<scope> scope 3 for id 3 </scope>
</references>
<references id="4">
<title>fourth references</title>
<author>
<person name="Mr. J"/>
<person name="Mr. K"/>
<person name="Mr. L"/>
</author>
<scope> scope 1 for id 4 </scope>
<scope> scope 2 for id 4 </scope>
<scope> scope 3 for id 4 </scope>
</references>
</entry>
</uniprot>
Я хочу все ссылки из этого XML в определенном формате: Выходные:
First Reference
Mr A, Mr B, Mr C
Scope 1 for id 1, Scope 2 for id 1, Scope 3 for id 1
Second Reference
Mr D, Mr E, Mr F
Scope 1 for id 2, Scope 2 for id 2, Scope 3 for id 2
Third Reference
Mr G, Mr H, Mr I
Scope 1 for id 3, Scope 2 for id 3, Scope 3 for id 3
Fourth Reference
Mr J, Mr K, Mr L
Scope 1 for id 4, Scope 2 for id 4, Scope 3 for id 4
Я написал свой код и Я могу получить значение заголовка в правильном формате, но я не могу получить информацию об авторе специально для каждой записи.
import xml.etree.ElementTree as ET
document = ET.parse("recipe.xml")
root = document.getroot()
title=[]
author=[]
scope=[]
for i in root.getiterator('title'):
title.append(i.text)
for j in root.getiterator('author'):
author.append(j.text)
for k in root.getiterator('scope'):
scope.append(k.text)
for i,j,k in zip(title,author,scope):
print i,j,k
Еще только название печати, так как имена для каждого названия становится сохранены в списке автора, и для следующего названия, как он будет добавлять в список по-разному? –
О, я не обращал внимания на остальную часть кода, теперь я редактирую свой ответ. – MostafaR