xml - 如何读取机器人框架中的 XML 响应元素?
问题描述
我已经运行 SOAP API 请求并使用机器人框架获得如下响应。
(reply){
return = "PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS"
}
我想从响应 XML 中检索值 PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS。我试图使用命令获取值
${token}= Set Variable ${API_response_Data.return}
但它会引发错误
SyntaxError: unexpected EOF while parsing (<string>, line 1)
SOAP UI 工具的实际响应如下所示(仅供参考)。
<soapenv:Envelope xmlns:soapenv="something" xmlns:xsd="something">
<soapenv:Body>
<ns1:response xmlns:ns1="http://something.com">
<return>PGP-98-Sq0awmdslfjsdssdlsifTvZUORTLe1fgVeUwaolR14QS</return>
</ns1:response>
</soapenv:Body>
</soapenv:Envelope>
当我使用
${Token}= Get Element ${API_response_Data} .//*return
Log ${Token.text}
请让我知道如何从返回标签中提取值?
解决方案
您可以使用机器人框架的XML 库来解析响应 XML,然后获取特定元素的文本。例如:
Demo
${root}= Parse XML soap_res.xml
${return}= Get Element ${root} .//*return
Log ${return.text}
Get Element
关键字返回一个 XML 元素对象,您需要它的属性text
。输出如下:
推荐阅读
- python - 如何使用序数分类器?
- c# - 如何在 C# 中将嵌套对象转换为对象
- python - xarray 自动完成触发计算
- python - 在 px.scatter 动画中同时使用 color_continuous_scale 和 color_discrete_sequence
- node.js - Adonis JS 与 AWS Secrets Manager 凭证的链接
- reactjs - map 不是一个函数,它可能是由于数组
- javascript - 在 vuejs 中调用路由监视更改的两个函数
- nuxt.js - 全新安装 Nuxt 后的 ESlint 错误
- npm - npm 没有扁平化本地依赖
- python - np.where 数据框上的嵌套条件