如何在Google App Engine上解析Python中的xml

Wil*_*ran 5 python xml google-app-engine beautifulsoup elementtree

对于以下xml,如何获取xml然后解析它以获取值<age>?

<boardgames>
  <boardgame objectid="13">
  <yearpublished>1995</yearpublished>
  <minplayers>3</minplayers>
  <maxplayers>4</maxplayers>
  <playingtime>90</playingtime>
  <age>10</age>
  <name sortindex="1">Catan</name>
  ...
Run Code Online (Sandbox Code Playgroud)

我正在尝试:

result = urlfetch.fetch(url=game_url)
xml = ElementTree.fromstring(result.content)
Run Code Online (Sandbox Code Playgroud)

但我不确定我是否走在正确的道路上.当我尝试解析时,我得到错误(我认为因为xml不是有效的xml).

mar*_*cog 7

xml.findtext('age')或者xml.findtext('boardgames/age')通常会让你获得10 <age>10</age>,但由于xml无效,解析似乎失败了.ElementTree在我的经验中,解析无效的xml做得相当糟糕.

而是使用BeautifulSoup,它可以很好地处理无效的xml.

content = urllib2.urlopen('http://boardgamegeek.com/xmlapi/boardgame/13').read()
soup = BeautifulSoup(content)
print soup.find('age').string
Run Code Online (Sandbox Code Playgroud)


mzj*_*zjn 2

以下对我有用:

import urllib2
from xml.etree import ElementTree

result = urllib2.urlopen('http://boardgamegeek.com/xmlapi/boardgame/13').read()
xml = ElementTree.fromstring(result)
print xml.findtext(".//age")
Run Code Online (Sandbox Code Playgroud)