python - 使用 requests 模块从 xml 文件中获取单个标签的内容
问题描述
我使用以下代码使用 python requests 模块向soap服务发出请求:
response = requests.get(url,data=body,headers=headers)
并且服务返回此 xml 作为响应:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aa="example.com/api"><soap:Body>
<aa:GetStockFileResponse> GetStockFileResponseType
<aa:TestMode> boolean </aa:TestMode>
<aa:Errors> ArrayOfError
<aa:Error> Error
<aa:Code> int </aa:Code>
<aa:Description> string </aa:Description>
</aa:Error>
</aa:Errors>
<aa:Warnings> ArrayOfWarning
<aa:Warning> Warning
<aa:Code> int </aa:Code>
<aa:Description> string </aa:Description>
</aa:Warning>
</aa:Warnings>
<aa:StockFileFormat> StockFileFormat (string) </aa:StockFileFormat>
<aa:FieldDelimiter> StringLength1 (string) </aa:FieldDelimiter>
<aa:File> base64Binary </aa:File>
</aa:GetStockFileResponse>
</soap:Body></soap:Envelope>
我需要写入一个 csv 文件,其内容<aa:File> base64Binary </aa:File>
是一个 base64 编码的 csv 文件。我编写响应的代码是:
with open ('test.csv','wb') as f:
f.write (response.content)
那显然要写整个xml...如何只取<aa:File> base64Binary </aa:File>
内容?
解决方案
像这样的东西会是解决方案吗?
import re
xmlText = '<foo>Foo</foo><aa:File> base64Binary </aa:File><bar>Bar</bar>'
# Target to extract: " base64Binary "
content = re.findall(r'<aa:File>(.+?)</aa:File>', xmlText)
print(content) # outputs " base64Binary "
推荐阅读
- amazon-web-services - 使用 cloudformation 标记现有 ebs 卷
- c# - 拒绝访问路径“C:\Users\amministratore\Documents\pippo.xml”
- r - 如何在 R 上安装 plotrix 包?
- hyperledger-fabric - Hyperledger Fabric 在单个节点上使用 CouchDb 很脆弱?
- powerbi - Power BI - sumifs
- jasper-reports - 如何在 Jasper Reports 生成的 RTF 中将元素一起移动?
- ruby-on-rails - 设计禁止登录参数的消毒剂
- sql - 如何在postgres中将两列与冒号“:”结合起来
- ms-word - 应该使用什么结束标记将范围扩展到段落末尾?
- javascript - 重置过滤数据Vue.js