解析XML时出现xml.parsers.expat.ExpatError
我一直在尝试通过HTTP请求获取信息,比如这个链接:
http://www.opencellid.org/cell/get?key=xxxxxxxxxxxxx&mnc=1&mcc=228&lac=101&cellid=7283
这个链接会给我返回一个XML格式的响应,内容大概是这样的:
<rsp stat="ok">
<cell nbSamples="1" mnc="1" lac="101" lat="46.52079" lon="6.56676" cellId="7283" mcc="228" range="6000"/>
</rsp>
我尝试使用response
和urllib
模块来打开这个网址,然后用elementtree.ElementTree
来解析。
下面是我的代码片段:
url = 'http://www.opencellid.org/cell/get?key=xxxxxxxxxx&mnc=1&mcc=228&lac=101&cellid=7283 '
rss = parse(requests.get(url = url)).getroot()
pprint(rss)
但是我遇到了以下错误:
xml.parsers.expat.ExpatError: junk after document element: line 5, column 0
仅仅打印响应就得到了HTML的成功代码。请帮帮我!
2 个回答
0
我建议你首先保存一个只包含xml内容的文本文件:
<rsp stat="ok">
<cell nbSamples="1" mnc="1" lac="101" lat="46.52079" lon="6.56676" cellId="7283" mcc="228" range="6000"/>
</rsp>
确保文件末尾没有多余的字符。然后检查一下解析是否正常。如果可以正常解析,那就说明是通信方面的问题,你需要想办法“清理”一下你收到的数据。
祝你好运!
1
你忘了在响应对象上调用内容了。这样才能得到实际的xml数据。
content = requests.get(url = url).content
rss = parse(content).getroot()