首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >全流XML解析器

全流XML解析器
EN

Stack Overflow用户
提问于 2018-10-25 20:20:17
回答 1查看 3K关注 0票数 4

我正在尝试使用requestslxmlbase64io来使用Exchange。此服务在SOAP XML HTTP响应中返回base64编码的文件。文件内容包含在单个XML元素的一行中。GetAttachment只是一个例子,但问题更普遍。

我想直接将解码的文件内容流式传输到磁盘,而不在任何时候将附件的全部内容存储在内存中,因为一个附件可能有几个100MB。

我尝试过这样的东西:

代码语言:javascript
复制
r = requests.post('https://example.com/EWS/Exchange.asmx', data=..., stream=True)
with open('foo.txt', 'wb') as f:
    for action, elem in lxml.etree.iterparse(GzipFile(fileobj=r.raw)):
    if elem.tag == 't:Content':
        b64_encoder = Base64IO(BytesIO(elem.text))
        f.write(b64_encoder.read())

但是lxml仍然以elem.text的形式存储附件的副本。有没有什么方法可以创建一个完全流式的XML解析器,它还可以直接从输入流中流式传输元素的内容?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52989143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档