- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试用 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>
中来解决这个问题节点。
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 来获取值。
关于python - 解析 XML 时出现 xml.parsers.expat.ExpatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140672/
我很难找到为什么在共享库(它是 firefox xpcom 组件)中链接静态库(包含 expat 的 XMP)时出现未解析的外部符号。 我在 Windows 下使用 Windows 编译器(标志:“-
当我从我的 XML 文档中打印出信息时,我在每一行之前得到了 ��。这是我的 XML 文档。 Tove Jani Reminder Don't forget me this weekend! 这
我找不到任何关于 expat-parser 在 XML 标签方面支持和不支持的文档。我知道在一般情况下,expat 让事件处理程序(由用户实现)处理标签,但我特别想知道 expat 是否支持任何类型的
我正在尝试安装node-expat。我已经尝试了我能找到的所有建议。运行 npm install node-expat 时,我没有收到任何构建错误。我已经放入了所有依赖项和构建工具包,尝试了 npm
我的项目依赖于 expat。我的问题是我无法链接到 expat。我使用的是Ubuntu(debian环境),需要使用cmake来构建makefile。 我尝试下载源代码并在我的 CMakeLists.
基于树的解析器:这种解析器把 XML 文档转换为树型结构。它分析整篇文档,并提供了对树中元素的访问,例如文档对象模型 (DOM)。 基于时间的解析器:将 XML 文档视为一系列的事件。当某个具体的
我刚开始使用 expat。我试图弄清楚 XML_SetUserData 的用途。在我的例子中,我有一个 A 类对象列表,我需要在解析 XML 流时填充这个列表。 到目前为止,我计划使用单例来表示这个单
我已经用 expat 解析器注册了三个处理程序:- 开始-结尾- 文字 然后从主程序中,我读取了 xml 文件,对其进行缓冲并调用 XML_Parse API。像这样: try { if( ! XML
我正在使用 expat 编写 xml 解析器。刚看到这个: XML_SetElementHandler XML_Parser parser, XML_StartElementHan
我正在将 bluez 交叉编译到我的板上,但无法编译 dbus。 配置时,出现此错误消息: checking for XML_ParserCreate_MM in -lexpat... no conf
我正在使用 MingW 在 Windows 上编写 C 程序,并希望使用 EXPAT XML 库。我想静态编译我的程序,所以我需要静态 .a 库。 有什么方法可以将 EXPAT 编译成 Windows
我有一个二进制流,其中包含串联的 XML 文档。使用如下调用以任意大小的 block 处理流: int expat_status = XML_Parse(parser->expat, buffer,
这是我第一次使用外部 header ,我对外籍人士一无所知。Expat 官方网站对于初学者来说没什么用。我需要使用 expat.h 用 C 语言编译 XML 解析器代码。我已经下载了 expat 文件
我正在使用 expat 读取 xml 文件。我想从 xml 文件中指定的配置中填充我的一些类成员变量。我已经定义了我的 startelement 处理程序, void Start(void *data
Expat 有一个用于 lib 的 .la 文件。我正在尝试使用 XCode 链接它。 我所做的是将目标的“其他链接标志”设置为 libexpat.la,并将“库搜索路径设置为 .la 文件所在的位置
我对 expat 的 XML 验证有疑问。我没有找到可以帮助我验证 xml 文档的文档或 wiki。 是否可以使用 libexpat 和 C 程序通过 xml 模式(xsd 文件)验证我的 XML 文
https://github.com/TooTallNate/node-expat/tree/gyp和node-gyp用于编译它。生成了node_expat.node。在代码中引用时出现以下错误: m
我按照these instructions制作了本地wsdl。 我的本地WSDL中的一些行: 当我像这样使用python时: from SOAPpy import WSDL serv
import xml.parsers.expat def start_element(name, attrs): print('Start element:', name, attrs) de
我正在使用 XML-Simple 和 XML-SAX-Expat 来解析包含外部实体的文档。我这样声明我的实体: 我指的是同一目录下的另一个文件。 但是,它正在我的当前工作目录中搜索该文件,而不是根
我是一名优秀的程序员,十分优秀!