解析 XML 时出现 xml.parsers.expat.ExpatError

2024-03-17

我正在尝试用 Python 解析 XML,但还没有走得太远。我认为这是由于该 API 返回了错误的 XML 树。

这就是 GET 请求返回的内容:

<codigo>3</codigo><valor></valor><operador>Dummy</operador>

GET 请求在这里:

http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX

这是我正在使用但没有任何运气的Python代码:

import urllib
from xml.dom import minidom

url = urllib.urlopen('http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX')
xml = minidom.parse(url)
code = doc.getElementsByTagName('codigo')

print code[0].data

这是我得到的回应:

xml.parsers.expat.ExpatError: junk after document element: line 1, column 18

我需要做的是检索里面的值<codigo>元素并将其放入变量中(其他相同)。


这里的主要问题是该服务返回的 XML 代码不包含根节点,这是无效的。我通过简单地将输出包装在一个<root> node.

import urllib
from xml.etree import ElementTree

url = 'http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX'
xmldata = '<root>' + urllib.urlopen(url).read() + '</root>'
tree = ElementTree.fromstring(xmldata)
codigo = tree.find('codigo').text

print codigo

您可以使用任何您想要的解析器,但这里我使用 ElementTree 来获取值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析 XML 时出现 xml.parsers.expat.ExpatError 的相关文章

随机推荐