![](/img/trans.png)
[英]Parsing a XML in Python using ElementTree with repeat elements
[英]Parsing XML: Finding Interesting Elements Using ElementTree
我正在使用urllib和ElementTree來解析來自pubmed的XML API調用。
例如:
#Imports Modules that can send requests to URLs
#Python Version 3.4 Using IEP (Interactive Editor for Python) as IDE
import urllib.request
import urllib.parse
import re
import xml.etree.ElementTree as ET
from urllib import request
#Obtain API Call and assign Element Object to Root
id_request = urllib.request.urlopen('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=1757056')
id_pubmed = id_request.read()
root = ET.fromstring(id_pubmed)
現在,我已經能夠使用元素樹將數據從ET.fromstring導入到對象根目錄。 我現在的問題是,我無法從該對象中找到有趣的元素。
我指的是: https : //docs.python.org/2/library/xml.etree.elementtree.html ,我的XML格式如下: http : //eutils.ncbi.nlm.nih.gov/entrez/eutils /esummary.fcgi?db=pubmed&id=1757056
我努力了:
#Parse Attempts. Nothing returned.
for author in root.iter('Author'):
print (author.attrib)
以及
#No Return for author
for author in root.findall('Id'):
author = author.find('author').text
print (author)
嘗試按標簽進行迭代
for author in root.iter('Item'):
if author.attrib['Name'] == 'Author':
print("Success")
要么:
author_list = [x for x in root.iter('Item') if x.attrib['Name'] == 'Author']
我不知道您是否可以按屬性進行迭代
.attrib
方法返回標簽內部的值。 我認為您可能想使用.tag
或.text
代替。 我不確定您要從此樹中提取什么數據,但是您也可以遍歷author
值。
編輯:好吧,除非您將有更多的DocSum標簽,否則esummaryResult標簽似乎毫無意義。 但是您想要的信息在您的.text
值中。 嘗試打印author.tag
,也許您可以檢查返回的值以進行當前迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.