我正试图将像这样的url(http://musicbrainz.org/ws/2/artist/72c536dc-7137-4477-a521-567eeb840fa8)导入python并提取“gender”的值。在
import urllib2
import codecs
import sys
import os
from xml.dom import minidom
import xml.etree.cElementTree as ET
#urlbob = urllib2.urlopen('http://musicbrainz.org/ws/2/artist/72c536dc-7137-4477-a521-567eeb840fa8')
url = 'dylan.xml'
#attempt 1 - using minidom
xmldoc = minidom.parse(url)
itemlist = xmldoc.getElementsByTagName('artist')
#attempt 2 - using ET
tree = ET.parse('dylan.xml')
root = tree.getroot()
for child in root:
print child.tag, child.attrib
我似乎不能通过mini-dom或者etree来理解性别。在当前形式中,脚本返回
^{pr2}$
所以。。第一次尝试的问题是,您看到的是所有艺术家元素的列表,而不是性别元素(列表中唯一艺术家元素的子元素)。在
第二次尝试的问题是,您正在查看根元素的子元素列表(该列表包含单个元数据元素)。在
基本结构是:
^{2}$因此,您需要获取root->;artist->;gender,或者只搜索您真正想要的节点(在本例中是gender)。在
这是因为你在循环
root
它只是树的根,这有意义吗?当循环根时,它只返回下一个子级并在那里停止。在您需要循环iterable,以便它返回下一个节点并获得结果,请参见以下内容:
结果:
^{2}$相关问题 更多 >
编程相关推荐