【发布时间】:2015-03-16 22:39:06
【问题描述】:
我正在使用返回 XML 文件的 pinnacle(投注)api。目前,我将其保存为 .xml 文件,如下所示:
req = urllib2.Request(url, headers=headers)
responseData = urllib2.urlopen(req).read()
ofn = 'pinnacle_feed_basketball.xml'
with open(ofn, 'w') as ofile:
ofile.write(responseData)
parse_xml()
然后在parse_xml函数中打开
tree = etree.parse("pinnacle_feed_basketball.xml")
fdtime = tree.xpath('//rsp/fd/fdTime/text()')
我假设将其保存为 XML 文件,然后无需读取该文件,但如果不这样做,我将无法使其工作。
我尝试将responseData 传递给parsexml() 函数
parse_xml(responseData)
然后在函数中
tree = etree.parse(responseData)
fdtime = tree.xpath('//rsp/fd/fdTime/text()')
但它不起作用。
【问题讨论】:
-
如果你想解析一个内存对象(在你的例子中是一个字符串),使用
etree.fromstring(<obj>)--etree.parse需要一个类似文件的对象 -- Docs
标签: python xml xml-parsing lxml