我对 python 脚本语言非常陌生,最近正在研究一个解析基于 Web 的 xml 文件的解析器。
我可以在 python 中使用 minidom 检索除一个元素之外的所有元素,没有任何问题,但是我有一个节点,但我遇到了问题。我从 XML 文件中需要的最后一个节点是“图像”标签中的“url”,这可以在以下 xml 文件示例中找到:
<events>
<event id="abcde01">
<title> Name of event </title>
<url> The URL of the Event <- the url tag I do not need </url>
<image>
<url> THE URL I DO NEED </url>
</image>
</event>
下面我复制了我认为可能相关的代码的简短部分。我非常感谢任何帮助以检索最后一个图像 url 节点。我还将包括我尝试过的内容以及在 GAE 中运行此代码时收到的错误。我使用的 python 版本是 Python 2.7,我可能还应该指出我将它们保存在一个数组中(以便以后输入到数据库)。
class XMLParser(webapp2.RequestHandler):
def get(self):
base_url = 'http://api.eventful.com/rest/events/search?location=Dublin&date=Today'
#downloads data from xml file:
response = urllib.urlopen(base_url)
#converts data to string
data = response.read()
unicode_data = data.decode('utf-8')
data = unicode_data.encode('ascii','ignore')
#closes file
response.close()
#parses xml downloaded
dom = mdom.parseString(data)
node = dom.documentElement #needed for declaration of variable
#print out all event names (titles) found in the eventful xml
event_main = dom.getElementsByTagName('event')
#URLs list parsing - MY ATTEMPT -
urls_list = []
for im in event_main:
image_url = image.getElementsByTagName("image")[0].childNodes[0]
urls_list.append(image_url)
我收到的错误如下,非常感谢任何帮助,凯伦
image_url = im.getElementsByTagName("image")[0].childNodes[0]
IndexError: list index out of range