使用LXML在Python中解析XML

时间:2015-02-24 00:54:54

标签: python xml lxml

tree = etree.parse("pinnacle_feed.xml")

fdtime = tree.xpath('//rsp/fd/fdTime/text()')
global lasttime 
lasttime = fdtime[0]


for leagues in tree.getiterator('league'):
    leagueid = tree.xpath('//id/text()')

    for elt in leagues.getiterator('event'):
        startDateTime = elt.xpath('//startDateTime/text()')
        eventId = elt.xpath('//id/text()')
        homeTeam = elt.xpath('./homeTeam/name/text()')
        awayTeam = elt.xpath('./awayTeam/name/text()')
        homeTeamOdds = elt.xpath('./periods/period/moneyLine/homePrice/text()')
        awayTeamOdds = elt.xpath('./periods/period/moneyLine/awayPrice/text()')
        drawOdds = elt.xpath('./periods/period/moneyLine/drawPrice/text()')
        print full_iterator

这是我目前正在使用的代码。问题是,当我解析联盟中的事件时,我需要找出“当前”的联盟。

leagueid = tree.xpath('//id/text()') 

返回所有联赛的列表,而不仅仅是“当前的一个”

我希望我能正确解释自己,有人可以给我一个手/建议。

XML doc:http://pastebin.com/BDaJ7Ayx

1 个答案:

答案 0 :(得分:0)

我认为这是从leagues变量引用的当前节点获取id所需的内容:

leagueid = leagues.xpath('./id/text()')

Xpath上方从当前<id>节点查找子节点<league>