我正在尝试从soap响应中读取XML值。包括下面的响应,我正在尝试从下面的XML中读取承载令牌。尝试了几种方法,但都失败了。
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ofo:GetToken xmlns:ofo="http://dummyurl.com/xsd/xyz">
<ofo:Token>Bearer 123sfafweo123</ofo:Token>
</ofo:GetToken>
</soapenv:Body>
</soapenv:Envelope>
我试过的代码
import import lxml.etree
# send request to get above response.
response = requests.post(url, data=body, headers=headers)
root = lxml.etree.fromstring(response.content)
textelem = root.find('Envelope/Body/GetToken/Token')
print(textelem)
1条答案
按热度按时间0yg35tkg1#
你的原始代码没有考虑到命名空间。有几种方法可以解决这个问题。例如,这应该可以
或者,如果您希望避免处理命名空间:
输出,在任一情况下: