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).
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)
以下对我有用:
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)
| 归档时间: |
|
| 查看次数: |
4892 次 |
| 最近记录: |