python解析soap的xml,如何用Python解析SOAP XML?

一个老问题,但值得一提的是这项任务的另一个选择。

我喜欢使用xmltodict(Github)这是一个将XML转换为python字典的轻量级转换器。

将soap响应放入名为stack的变量中

用xmltodict.parse解析它In [48]: stack_d = xmltodict.parse(stack)

检查结果:In [49]: stack_d

Out[49]:

OrderedDict([('soap:Envelope',

OrderedDict([('@xmlns:soap',

'http://schemas.xmlsoap.org/soap/envelope/'),

('@xmlns:xsd', 'http://www.w3.org/2001/XMLSchema'),

('@xmlns:xsi',

'http://www.w3.org/2001/XMLSchema-instance'),

('soap:Body',

OrderedDict([('GetStartEndPointResponse',

OrderedDict([('@xmlns',

'http://www.etis.fskab.se/v1.0/ETISws'),

('GetStartEndPointResult',

OrderedDict([('Code',

'0'),

('Message',

None),

('StartPoints',

OrderedDict([('Point',

[OrderedDict([('Id',

'545'),

('Name',

'Get Me'),

('Type',

'sometype'),

('X',

'333'),

('Y',

'222')]),

OrderedDict([('Id',

'634'),

('Name',

'Get me too'),

('Type',

'sometype'),

('X',

'555'),

('Y',

'777')])])]))]))]))]))]))])

在这一点上,浏览python词汇表变得非常容易In [50]: stack_d['soap:Envelope']['soap:Body']['GetStartEndPointResponse']['GetStartEndPointResult']['StartPoints']['Point']

Out[50]:

[OrderedDict([('Id', '545'),

('Name', 'Get Me'),

('Type', 'sometype'),

('X', '333'),

('Y', '222')]),

OrderedDict([('Id', '634'),

('Name', 'Get me too'),

('Type', 'sometype'),

('X', '555'),

('Y', '777')])]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值