我试图用Python解析XML,但没有走得太远.我认为这是由于此API返回错误的XML树.
所以这是GET请求返回的内容:
<codigo>3</codigo><valor></valor><operador>Dummy</operador>
Run Code Online (Sandbox Code Playgroud)
GET请求在这里:
http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的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
Run Code Online (Sandbox Code Playgroud)
这是我得到的回应:
xml.parsers.expat.ExpatError: junk after document element: line 1, column 18
Run Code Online (Sandbox Code Playgroud)
我需要做的是检索<codigo>元素中的值并将其放在变量中(对于其他变量相同).
six*_*ear 13
这里的主要问题是该服务返回的XML代码不包含无效的根节点.我通过简单地将输出包装在<root>节点中来解决这个问题.
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
Run Code Online (Sandbox Code Playgroud)
你可以使用你想要的任何解析器,但在这里我使用ElementTree来获取值.
| 归档时间: |
|
| 查看次数: |
20658 次 |
| 最近记录: |